Ir ao conteúdo
  • Cadastre-se

C++ como se edita um nome dentro de um arquivo usando c++


juliocesarlb

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!