Ir para o conteúdo
hardaway

Apagar/modificar linha em ficheiro

Mensagens Recomendadas

hardaway    0
hardaway

Boas, antes de mais os meus cumprimentos a todos, ha muito que sou leitor do forum, e nunca necessitei de me registar pois encontrei sempre as minhas dúvidas, mas há sempre uma primeira vez... :biggrin:

Agora a minha duvida:

1. estou a escrever uma estrutura num ficheiro. Para alterar campos dessa estrutura no ficheiro tenho de passavar todo o conteudo do ficheiro para um vector de estruturas, altera lo e voltar a inserir o vector todo para o ficheiro??

2. existe forma de apagar apenas a linha N do ficheiro?

Cumpz e desde ja o meu obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

1. estou a escrever uma estrutura num ficheiro. Para alterar campos dessa estrutura no ficheiro tenho de passavar todo o conteudo do ficheiro para um vector de estruturas, altera lo e voltar a inserir o vector todo para o ficheiro??

2. existe forma de apagar apenas a linha N do ficheiro?

1. Sim

2. Não me parece. Mesmo que houvesse acho que ía-te dar muito trabalho pelo que é melhor ler os dados, alterá-los e depois gravar de novo tudo para o ficheiro.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
shumy    17
shumy

Existem várias formas de o fazer.

Podes usar a função fseek(...) para posicionar o ponteiro do file.

Isto requer que a estrutura seja estática ou que tenha indicadores de tamanho para arrays contidos na estrutura.

Se não usares indicadores de tamanho, podes marcar o fim dos arrays com algum caracter especial (que não pode ser usado senão para marcar), desta forma terás de ir lendo o file até encontrares o caracter.

A primeira opção implica provavelmente adicionar contadores para cada array/ponteiro que tiveres na estrutura, mas é sem duvida a solução mais simples.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

pois.. obrigado... ja agora... como apago o conteudo do ficheiro para poder voltar a escrever?

Se abrires o ficheiro em modo "W" ele substitui automaticamente pela nova informação.

fp=fopen("file.dat","w");

fwrite.......

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade