SA-MP Forums Archive
[Ajuda] Manageando string - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Manageando string (/showthread.php?tid=549915)



Manageando string - VeNuZ_ - 09.12.2014

Boas, tenho o seguinte cуdigo:
pawn Код:
stock RT_getText(rt_lang[], rt_key[])
{
    new rt_Trans[128], File:rt_file;
    rt_file = fopen ( formatDirectory(rt_lang) , io_read );
    format(rt_key, strlen(rt_key)+3, "%s =", rt_key);
    while(fread(rt_file, rt_Trans)){
        if(strfind(rt_Trans, rt_key, true)==0){
            strdel(rt_Trans, 0, strlen("HELLO = "));
            return rt_Trans;
        }
    }

    return rt_Trans;
}
Atй aqui tudo bem, ele vai buscar a string e retira a parte da key exemplo:

No arquivo esta:
Код:
HELLO = Hello, %s!
executando este cуdigo:
pawn Код:
main() {
print(RT_getText("ing", "HELLO"));
}
Ele retorna:
Код:
Hello, %s!
Mas se eu for a usar o format, exemplo:
pawn Код:
main() {

new string[128];
format(string, 128, RT_getText("ing", "HELLO"), "VeNuZ_");
print(string);
}
Ele retorna:

Код:
Hello, =!
Alguйm me pode ajudar?


Re: Manageando string - [BOPE]Seu._.Madruga - 09.12.2014

1° Talvez estб:

PHP код:
main()
{
    new 
string[128];
    
format(string128RT::getText("ing""HELLO"), "VeNuZ_");
    print(string);

2° Ou estб:
PHP код:
main()
{
    new 
string[128];
    
formatF(stringRT::getText("ing""HELLO"), "VeNuZ_");
    print(string);




Re: Manageando string - VeNuZ_ - 09.12.2014

Neste caso usando 1 ou outro vai dar ao mesmo, o %s fica com um =, sу nгo percebo o porquк..


Re: Manageando string - [BOPE]Seu._.Madruga - 09.12.2014

° Tente usar estб stock:
PHP код:
stock RT_getText(rt_lang[], rt_key[])
{
    new 
rt_Trans[128], File:rt_file;
    
rt_file fopen formatDirectory(rt_lang) , io_read );
    
format(rt_keystrlen(rt_key)+3"%s"rt_key);
    while(
fread(rt_filert_Trans)){
        if(
strfind(rt_Transrt_keytrue)==0){
            
strdel(rt_Trans0strlen(rt_key)+3); 
            return 
rt_Trans;
        }
    }
    return 
rt_Trans;




Re: Manageando string - MultiKill - 09.12.2014

pawn Код:
stock RT_getText(rt_lang[], rt_key[])
{
    new rt_Trans[128], File:rt_file;
    rt_file = fopen ( formatDirectory(rt_lang) , io_read );
    format(rt_key, strlen(rt_key)+3, "%s =", rt_key);
    while(fread(rt_file, rt_Trans)){
        if(strfind(rt_Trans, rt_key, true) != -1){ // foi mexido aqui
            strdel(rt_Trans, 0, strlen(rt_key)+1); // e aqui
            return rt_Trans;
        }
    }

    return rt_Trans;
}



Re: Manageando string - VeNuZ_ - 09.12.2014

Cуdigo final:
pawn Код:
stock RT_getText(rt_lang[], rt_key[])
{
    new rt_Trans[128], File:rt_file;
    rt_file = fopen ( formatDirectory(rt_lang) , io_read );
    format(rt_key, strlen(rt_key)+3, "%s", rt_key);
    while(fread(rt_file, rt_Trans)){
        if(strfind(rt_Trans, rt_key, true)==0){
            strdel(rt_Trans, 0, strlen(rt_key)+3);
            return rt_Trans;
        }
    }

    return rt_Trans;
}
Obrigado pela ajuda, o primeiro format estava a lixar tudo xD


Re: Manageando string - [BOPE]Seu._.Madruga - 09.12.2014

Eu hein, vai entender '-'

Quote:
Originally Posted by VeNuZ_
Посмотреть сообщение
Cуdigo final:
pawn Код:
stock RT_getText(rt_lang[], rt_key[])
{
    new rt_Trans[128], File:rt_file;
    rt_file = fopen ( formatDirectory(rt_lang) , io_read );
    format(rt_key, strlen(rt_key)+3, "%s", rt_key);
    while(fread(rt_file, rt_Trans)){
        if(strfind(rt_Trans, rt_key, true)==0){
            strdel(rt_Trans, 0, strlen(rt_key)+3);
            return rt_Trans;
        }
    }

    return rt_Trans;
}
Obrigado pela ajuda, o primeiro format estava a lixar tudo xD