Ir ao conteúdo
  • Cadastre-se
Gnomo Psicodélico

C Como edita em arquivo binário?

Recommended Posts

To tentando aprender usar struct, não consegui fazer ele editar somente listar e adicionar, como faz pra editar? tentei dessa forma
 

case '3':
        {
            system("cls");
            char clienteE[100][30];
            char newname[100][30];
            char armaz[100][30];
            clientes = fopen("cliente.dat","r+b");
            int cont;
            cont = fread(&armaz,sizeof(cadastro.cliente),sizeof(cadastro.numero),clientes);
            printf("Digite o nome do cliente: ");
            scanf("%s",&clienteE);
            for(int i = 0; i < cont; i++)
            {
            if(strcmp(clienteE,armaz[i]) == 0)
            {
                fseek(clientes,1,SEEK_CUR);
                printf("\nSeu cliente: %s\n",armaz[i]);
                printf("numero do cliente: %s",armaz[i+1]);
                printf("\n\n");
                printf("Digite o novo nome: ");
                scanf("%s",&newname);
                printf("\nNovo nome: %s\n", newname);
                strcpy(armaz[i],newname);
                fwrite(&cadastro.cliente[i],sizeof(armaz[i]),1,clientes); //cadastro.cliente(é o char da struct) 
                fclose(clientes);
                printf("\n\n\n");
                goto inicio;
            }
            }
        }


  Tentei usar fseek ali usando i em vez de 1 pra ele posicionar naquele local do arquivo pra fazer edição mas não deu certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estrutura de dados não é simples como atribuir 2+2, fica ainda mais difícil quando não documentado

 

Boa sorte.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho melhor você trabalhar como se fora uma planilha. OU seja, 

O programa abre o arquivo e carrega todos os dados num array de struct.

Aí você pode incluir, excluir, editar os dados da struct, um elemento de cada vez.

Depois ter uma função salvar, que resume-se a gravar o array de struct no arquivo.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso de fazer como o @Boko Moko indicou é bom fazer o programa automaticamente salvar todo o array no arquivo toda vez que fizer uma alteração no array (ou seja, quando adiciona, edita ou exclui cadastros), e não depender do usuário escolher salvar.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, isrnick disse:

é bom fazer o programa automaticamente salvar todo o array no arquivo toda vez que fizer uma alteração no array

boa ideia

faz a funcaozinha que salva e chama ela de vez em quando dentro do  código. 
Parabens, grande ideia

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×