1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Continuar a escrever num ficheiro que ja tem dados

Discussão em 'Programação' iniciada por ashemorroidas, 4 de Janeiro de 2008. (Respostas: 11; Visualizações: 1030)

  1. 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: 4 de Janeiro de 2008
  2. theforbidden1

    theforbidden1 Banido

    uma maneira simples, é carregar o ficheiro e volta-lo a escrever e não o fechar, enquanto ainda está aberto escreve as novas coisas...
     
  3. theforbidden1

    theforbidden1 Banido

    Se quiseres ajuda mais detalhada tens que por no titulo do post que linguagem estás a utilizar...
     
  4. CoolMaster

    CoolMaster Power Member

    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.
     
  5. 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: 4 de Janeiro de 2008
  6. Baderous

    Baderous Banido

    Penso que tens de usar a função fseek.
     
  7. Pontiac

    Pontiac Power Member


    Nesse caso acho que deves carregar tudo em memoria, organizar como queres e voltar a escrever.
     
  8. tbogas

    tbogas Power Member

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

    legerdemain Power Member

    bravo
     
  10. petersaints

    petersaints Power Member

    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 ;)
     
  11. slack_guy

    slack_guy Power Member

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

    petersaints Power Member

    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.
     

Partilhar esta Página