[Ajuda] Substituir linha
#1

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;

Reply
#2

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

Reply
#3

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.
Reply
#4

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.
Reply
#5

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?
Reply
#6

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); 
Reply
#7

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

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); 
Reply
#9

Nгo entendi este cуdigo.
Reply
#10

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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)