SA-MP Forums Archive
[Ajuda] Substituir linha - 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] Substituir linha (/showthread.php?tid=661979)



Substituir linha - ByAwolN - 20.12.2018

Olб, estou com um problema onde tento substituir a linha de determinado arquivo, porйm eu preciso que substitua a linha 4 e acaba substituindo a linha 1 apenas. O que hб de errado?

PHP код:
stock LineSub(filename[], coment[])
{
    new 
File:temp fopen("temp.tmp"io_write),
        
File:pfile fopen(filenameio_read),
        
linetmp[1024];
    if(!
fexist(filename))
        return 
0;
    while(
fread(pfiletmp))
    {
        
line ++;
        if(
line != 1
            
fwrite(temptmp);
    }
    
fclose(temp);
    
fclose(pfile);
    
fremove(filename);
    
temp fopen("temp.tmp"io_read);
    
pfile fopen(filenameio_write);
    
fwrite(pfilecoment);
    while(
fread(temptmp))
        
fwrite(pfiletmp);
    
fclose(temp);
    
fclose(pfile);
    
fremove("temp.tmp");
    return 
1;




Re: Substituir linha - DarkBr - 20.12.2018

Testa isso:

PHP код:
LineSub(const filename[], const coment[], lineid

    if (!
fexist(filename))
    {
        return 
0
    }
    new 
        
Filetemp=fopen("temp.tmp"io_write), 
        
Filepfile=fopen(filenameio_read), 
        
linetmp[128]
    ;
    if (!
pfile)
    {
        return 
0;
    }    
    while(
fread(pfiletmp)) 
    { 
        
line ++; 
        if (
line != lineid)
        {  
            
fwrite(temptmp);
        }
        else 
        {    
            
fwrite(tempcoment);
            
fwrite(temp"\r\n");
        }
    }
    
fclose(temp); 
    
fclose(pfile);
    if ((
pfile fopen(filenameio_write)))
    {
        if ((
temp fopen("temp.tmp"io_read)))
        {
            new 
nchar;
            while((
nchar fgetchar(temp0true)) != EOF)
            {
                
fputchar(pfilenchar);
            }
        }
    }
    
fclose(temp); 
    
fclose(pfile);
    
fremove("temp.tmp");
    return 
1




Re: Substituir linha - ipsLuan - 20.12.2018

Onde vocк pegou esta funзгo?
Essa sua funзгo nгo hб o parвmetro para alterar a linha.

Tente usar a funзгo do @DarkBr.


Re: Substituir linha - ByAwolN - 20.12.2018

Com esse cуdigo nгo chega a substituir nem a primeira linha. Ah, eu utilizo format para salvar a nova linha e posteriormente a stock para fazer a substituiзгo, o problema estб em substituir outra linha que nгo seja a primeira.


Re: Substituir linha - ipsLuan - 20.12.2018

Quote:
Originally Posted by ByAwolN
Посмотреть сообщение
Com esse cуdigo nгo chega a substituir nem a primeira linha. Ah, eu utilizo format para salvar a nova linha e posteriormente a stock para fazer a substituiзгo, o problema estб em substituir outra linha que nгo seja a primeira.
Vocк estб usando a funзгo do Dark?
De que forma estб fazendo?


Re: Substituir linha - ByAwolN - 20.12.2018

Quote:
Originally Posted by ipsLuan
Посмотреть сообщение
Vocк estб usando a funзгo do Dark?
De que forma estб fazendo?
Sim, testei com ela.

Isso й um comando, estб funcional, eu sу gostaria de substituir a linha 3 ao invйs da 1.
PHP код:
                new string[128], str[128];
                
format(stringsizeof(string), "ArquivoC%d.txt"ArquivoLoad);
                
format(strsizeof(str), "%d \r\n"LikeG++);
                
LineSub(stringstr); 



Re: Substituir linha - ipsLuan - 20.12.2018

PHP код:
LineSub(stringstr3); 
Tente assim.
Usando a funзгo do Dark.


Re: Substituir linha - ByAwolN - 21.12.2018

Deu certo, finalmente kkkk
Muitнssimo obrigado, Luan e Dark

Sу mais uma dъvida para nгo precisar criar outro tуpico... Estou agora tentando formatar a linha para enviar uma mensagem para o jogador, porйm nгo estб pegando o nъmero correto da linha. Lembrando que sгo nъmeros inteiros.

PHP код:
                                        new File:temptmpx[256], LikeG[128], DLike[128];
                                        new 
string[128];
                                        new 
line 0;                    
                                        
format(stringsizeof(A), "ArquivoC%d.txt"ArquivoLoad);
                                        
temp fopen(stringio_readwrite);
                                        while(
fread(temptmpxsizeof(tmpx), false))
                                        {
                                            if(
line == 3)
                                            {
                                                
format(LikeGsizeof(LikeG), "%d"tmpx);
                                                
line 4;
                                            }
                                            else if(
line == 4)
                                            {
                                                
format(DLikesizeof(DLike), "%d"tmpx);
                                                
line 5;
                                            }
                                        }
                                        
fclose(temp);
                                        new 
S[128];
                                        
format(Ssizeof(S), "%d - %d"LikeGDLike);
                                        
SendClientMessage(playerid, -1S); 



Re: Substituir linha - ipsLuan - 21.12.2018

Nгo entendi este cуdigo.


Re: Substituir linha - ByAwolN - 21.12.2018

Quote:
Originally Posted by ipsLuan
Посмотреть сообщение
Nгo entendi este cуdigo.
No caso estou tentando pegar o nъmero das linhas 3 e 4 do arquivo para formatar e enviar uma mensagem ao jogador. Qual seria a forma mais fбcil de fazer isso? Dessa forma estб retornando os valores errados. Apenas quero enviar uma mensagem pegando o que estб na linha 3 e 4