+ Responder ao Tópico



  1. #1
    Não Registrado
    Visitante

    Cool Alterar linhas de arquivo em C enquanto as le

    Ola a todos

    Preciso fazer um programa em C onde eu possa ler linhas de um arquivo e alterá-las. Usando fgets para ler, fprintf e fseek, reparei que enquanto leio as linhas não posso alterá-las. Tem alguma foma de fazer isto?

    Exemplificando, vou ler a seguinte a primeira linha do arquivo (1234) e mudar seu primeiro caractere

    antes:

    1234
    abcd
    .;/]

    depois:

    #234
    abcd
    .;/]

    após, lerei a outra linha, que ficaria #bcd. Sei que posso fazer isto colocando parte do arquivo em outro arquivo temp, colocando a linha alterada depois, ai deleto o antigo arquivo e renomeio o arquivo temp com o nome do arquivo apagado, mas estou tentando fazer o que quero de outra maneira.
    Alguma solução?

    []'s

  2. #2

    Padrão

    Se entendi corretamente o que você quer fazer, seria assim:

    1. Abra o arquivo com permissão de leitura E escrita;
    2. Use ftell() para pegar a posição atual;
    3. Leia quantos bytes desejar;
    4. Use ftell() para pegar a posicão após a leitura;
    5. Use fseek() para voltar a posição do passo (2);
    6. Escreva quantos bytes desejar;
    7. Use fseek() para voltar a posicão do passo (4);
    8. Pula para o passo (3);