Continuar a escrever num ficheiro que ja tem dados

Boas.

Tenho um programa em C com o seguinte menu:

1 - Inserir Fornecedor
2 - Listar Fornecedor
5 - Ler ficheiro
6 - Criar Produto
3 - Sair

Sempre que se faz qualquer das opções..ele grava temporariamente na memoria e quando se faz sair, grava num ficheiro.

O que acontece e que quando se inicializa outra vez o programa ele teria de continuar a inserir fornecedores, criar produtos, etc, a seguir ao que ja tinha escrito no ficheiro e é isso que ele nao esta a fazer.

Ele limita-se a apagar o que estava escrito anteriormente e a escrever a nova informação por cima:|

Alguem me pode ajudar?
 
Última edição:
Tens que abrir em modo append , só te podemos explicar como se faz caso especifiques a linguagem em questão. Em C por exemplo basta veres a help/man do fopen() e ves logo os modos possiveis.
 
Exacto. Com o append aquilo vai continuar a escrever depois do que ja estava escrito. Esquecime foi de explicar que no ficheiro a informação vai ter de aparecer por ordem.

Por exemplo: eu primeiro insiro um fornecedor e um produto. A informação aparece no ficheiro por esta ordem.

O problema e que se eu voltar a abrir o programa e voltar a inserir um fornecedor e um produto, a informação em vez de poder aparecer na ordem: "fornecedor;produto;fornecedor;produto", tem de aparecer na ordem: "fornecedor;fornecedor;produto;produto"

Alguem me sabe ajudar?
 
Última edição:
Exacto. Com o append aquilo vai continuar a escrever depois do que ja estava escrito. Esquecime foi de explicar que no ficheiro a informação vai ter de aparecer por ordem.

Por exemplo: eu primeiro insiro um fornecedor e um produto. A informação aparece no ficheiro por esta ordem.

O problema e que se eu voltar a abrir o programa e voltar a inserir um fornecedor e um produto, a informação em vez de poder aparecer na ordem: "fornecedor;produto;fornecedor;produto", tem de aparecer na ordem: "fornecedor;fornecedor;produto;produto"

Alguem me sabe ajudar?


Nesse caso acho que deves carregar tudo em memoria, organizar como queres e voltar a escrever.
 
alem do append, o k podes fazer tb é ao iniciares o programa, carregas tudo o k tens no ficheiro, e dpx gravas tudo de uma vez.
 
O melhor é carregares tudo de volta para memória alterares e adicionares informação conforme as operações que efectues e voltar a escreve-las de novo no ficheiro que entretanto fica em branco. Lê sobre o fopen e as opções r,w,a, etc... também não as sei de cor quando preciso consulto ;)
 
Isso deve ser uma trabalho para a escola. No 'mundo real' esse programa não teria qualquer viabilidade. Dito isto, tens de ter forma de verificar se existe um processo em execução, caso contrário... nem quero imaginar o que irá acontecer ao ficheiro onde guardas os dados.
 
Sim estamos a considerar que é o ficheiro para uso exclusivo do programa em questão... claro que num ambiente mais complexo teria que haver verificação de acessos.
 
Back
Topo