Ir ao conteúdo

Posts recomendados

Postado

estou criando um codigo que funciona como uma agenda, e nesta agenda deve ter as opções de editar e excluir o contato salvo. porém não faço a minima ideia de como se edita ou exclui um "contato" que esta salvo no arquivo criado pelo script (é importante lembrar que essas funçoes devem ser feitas pelo codigo e não diretamente no arquivo)

 

  • Amei 1
Postado

@juliocesarlb      para criar um arquivo  e gravar  e ler dados nele você usa a função "fopen"  ,  porém mexer em arquivo é bem trabalhoso , e você pode fazer essas funções de editar e excluir ,   usando um segundo arquivo auxiliar onde se pede o que quer editar e abre o arquivo para leitura e o que não for esse dado você coloca no arquivo auxiliar , e encontrando o dado você faz as modificações  e coloca no arquivo auxiliar e chegando ao fim do arquivo  você fecha o arquivo e deleta esse arquivo onde está lendo , usando a função "remove" e depois renomeia  o arquivo auxiliar que já estará com os dados editados , colocado o mesmo nome do arquivo que tinha aqueles dados usando a função "rename" ,  e para excluir é a mesma coisa , ou seja , se o dado encontrando não for o que quer deletar você coloca no arquivo auxiliar e se for o que quer excluir você não coloca nesse arquivo auxiliar , e usa a função "remove" e "rename" ,    e então para facilitar seria melhor , logo no início do programa , pegar os dados que estejam no arquivo e colocar em uma struct ,  ou vetor ou matriz ,  e durante o funcionamento do programa você faz as edições e exclusões nos dados que estarão na struct , e no final na hora que for sair do programa , grava os dados novamente no arquivo usando a letra 'W" que vai recriar o arquivo com esse mesmo nome e deletar o que já estiver gravado nele e fazer a gravação dos dados que estão na struct no arquivo .    e se você já tiver feito um código sobre esse exercício , poste ele aqui e ajudaremos se ainda precisar   .

Postado

@juliocesarlb A primeira coisa que você deve se perguntar é de onde veio esse tal arquivo. Isso é o que vai resolver sua questão afinal.

 

Se você mesmo vai criar já vai resolver isso. Se alguém criou veja como foi especificado.

 

Em resumo tudo se refere a como gravou isso no disco.

 

Se quer gravar por exemplo como um texto, um contato por linha usando um separador entre cada campo, algo para nome, endereço e telefone podia ser
 

nome;endereço;telefone
Johnny Cash; Rua um, 1; 222-333-333
Willie Nelson; Rua um, 1; 212-333-333
Waylon Jennings; Rua um, 1; +1 (710) 2-333-333
Kris Kristoferson; Rua alfa, 1; +55 (11) 4004-4000

 

E não estaria sendo nada original. Esse é o formato csv em uso desde os anos 70

 

Se preferir usar algo como num script, algo assim:

 

[Johnny Cash]
endereco = Rua um, 1
telefone = 222-333-333
[Willie Nelson]
endereco = Rua um
telefone = 212-333-333

 

Onde o sentido é óbvio: o nome está entre [ ] e os campos aparecem prefixados. E também não seria nada original, Windows e Linux usam isso desde os '80 e o Unix antes. 

 

Esses formatos implicam em ler o arquivo linha a linha ou letra a letra e ir montando os dados, via fgets() fprintf() fscanf() e família.

 

Se você vai criar o arquivo pode optar por usar um arquivo binário com registros de tamanho fixo para as entradas da agenda. Algo como assumir 2.000 nomes de capacidade e 150 posições por nome e criar o arquivo desse tamanho e gravar os registros lá como um vetor, usando fseek e fwrite. E ter um arquivo de índice marcando para cada nome a posição na agenda em que está o registro.

 

Também não seria nada original já que algo assim era usado por exemplo nos arquivos indexados ISAM nos tempos da linguagem COBOL nos mainframes nos anos 70/80.

 

Se seu enunciado permitir, o normal é ler os valores da agenda para  a memória em alguma estrutura de dados, usar na memória e ao sair do programa regravar o arquivo no disco.

 

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!