Ir ao conteúdo
  • Cadastre-se

Junior Anzolin

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

6
  1. void ProcurarClientes(T_ficha_cliente arr[]){ char pesquisa[50]; int i; printf("Informe o Nome que procura:"); fflush(stdin); lerString(pesquisa, 50); for(i=0; i< 100; i++){ if(strcmp(pesquisa, arr[i].vcNome) == 0){ if(arr[i].ativo==1){ printf("<---------------------------------------->\n"); DetalhesCliente(arr, i+1); printf("<---------------------------------------->\n"); } } } system("pause"); }
  2. Que compilador esta usando? pois pelo dev c++ nao esta fazendo certo adicionado 2 minutos depois E não sei se isso interfere mas estou usando outro tipo alem de char mas não funcionou as minhas structs esta assim typedef struct ficha_vendedores{ int viCodigo; char vcNome[30]; char vcEndereco[50]; char vcFone[20]; int ativo; }T_ficha_vendedores; typedef struct ficha_produtos{ int viCodigo; int viUniEstoque; char vcDescricao[50]; char vcFornecedor[30]; char vcDataComp[20]; float vfPreco; int ativo; }T_ficha_produtos; typedef struct ficha_cliente{ int viCodigo; char vcNome[30]; char vcEndereco[50]; char vcFone[20]; int vbCredito; int ativo; }T_ficha_cliente; adicionado 40 minutos depois Se não for incomodo poderia testar com todo o scrypt? Código:
  3. Fiz assim void SalvarArqClientes(T_ficha_cliente clientes[], int sizeVet){ int i; FILE * arq; T_ficha_cliente p; arq = fopen("clientes.bin", "w"); if(arq != NULL){ for (i = 0; i < sizeVet; i++){ p = clientes[i]; fwrite(&p, sizeof(T_ficha_cliente), 1, arq); } fclose(arq); }else{ printf("Erro ao salvar o arquivo\n"); system("pause"); exit(1); } } void SalvarArqProdutos(T_ficha_produtos produtos[], int sizeVet){ int i; T_ficha_produtos p; FILE * arq; arq = fopen("produtos.bin", "w"); if(arq != NULL){ for (i = 0; i < sizeVet; i++) { p = produtos[i]; fwrite(&p, sizeof(produtos), 1, arq); } fclose(arq); }else{ printf("Erro ao abrir o arquivo\n"); exit(1); } } void SalvarArqVendedores(T_ficha_vendedores vendedores[], int sizeVet){ int i; T_ficha_vendedores p; FILE * arq; arq = fopen("vendedores.bin", "w"); if(arq != NULL){ for (i = 0; i < sizeVet; i++){ p = vendedores[i]; fwrite(&p, sizeof(vendedores), 1, arq); } fclose(arq); }else{ printf("Erro ao abrir o arquivo\n"); exit(1); } } Mas como faço com a leitura?? int lerVendedor(T_ficha_vendedores arr[]){ FILE * arq = fopen("vendedores.bin", "rb"); if(arq != NULL){ int indice = 0; while(1){ T_ficha_vendedores p; size_t r = fread(&p, sizeof(T_ficha_vendedores), 1, arq); // se retorno for menor que o count, então sai do loop if(r < 1) break; else arr[indice++] = p; } fclose(arq); // fecha o arquivo return indice; } else { printf("\nErro ao abrir o arquivo para leitura!\n"); system("pause"); exit(1); } } int lerProdutos(T_ficha_produtos arr[]){ FILE * arq = fopen("produtos.bin", "rb"); if(arq != NULL){ int indice = 0; while(1){ T_ficha_produtos p; size_t r = fread(&p, sizeof(T_ficha_produtos), 1, arq); // se retorno for menor que o count, então sai do loop if(r < 1) break; else arr[indice++] = p; } fclose(arq); // fecha o arquivo return indice; } else { printf("\nErro ao abrir o arquivo para leitura!\n"); system("pause"); exit(1); } } int lerClientes(T_ficha_cliente arr[]){ FILE * arq = fopen("clientes.bin", "rb"); char str[999]; if (arq) { while (fscanf(arq, "%s", str)!=EOF) printf("%s",str); system("pause"); fclose(arq); } system("pause"); if(arq != NULL){ int indice = 0; while(1){ T_ficha_cliente p; size_t r = fread(&p, sizeof(T_ficha_cliente), 1, arq); // se retorno for menor que o count, então sai do loop if(r < 1) break; else arr[indice++] = p; } fclose(arq); return indice; } else { printf("\nErro ao abrir o arquivo para leitura!\n"); system("pause"); exit(1); } } Não consegui inserir como C os códigos desculpe
  4. Olá! Sou novo aqui e estou com um sério problema em meu código. Bom vamos ao problema. O caso é que preciso trabalhar com arquivos e salvar os dados gerados com base em struct em um arquivo binário e quando abrir o programa novamente carregar os arquivos no vetor. O caso é que não esta ocorrendo assim. Fiz diversos teste e me parece que meu sizeof() não esta funcionando. Se alguém pude me ajudar agradeço muito, segue o código: Código:

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