• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

hardaway

Apagar/modificar linha em ficheiro

6 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.......

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
:P também ando com essa duvida.. :eek: quando conseguir.. digo-te  :cheesygrin:
0

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