Abruzi 0 Denunciar post Postado Julho 4, 2009 Boas, tou a fazer um trabalho de programaçao sobre um simulador de seguros automovel... e tou com duvidas na parte de guardar os dados em fixeiros.... a minha duvida e na parte da leitura.... pois posso gravar dados pedidos ao utilizador ate num maximo de 50 simulacoes... a minha duvida é, kuando quero aceder ao fixeiro.. por exemplo tenho duas linhas com os dados do condutor... a 1 para um e a segunda para outro... no caso de keres visualizar os dados referentes ao segunto como fazer???? e no caso de querer visualizar para o 5 tendo mais 10 inceridos...??? isto gravados em fixeiros txt.... aguardo resposta..... obrigado pela atenção.... Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Julho 4, 2009 Nossa! Vamos com calma amigão!!! Não entendi nada. Poste onde está seu problema. Poste o pedaço do código que esta com dificuldade. Poste um exemplo de input/output para podermos analisar melhor o problema. Noo tópico "Leia antes de Postar" ( http://forum.imasters.com.br/index.php?showtopic=294106 ) vais encontrar mais algumas dicas para teres as suas duvidas solucionadas mais rapidamente! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Abruzi 0 Denunciar post Postado Julho 4, 2009 Tenho uma funcao para gravar no fixeiro estes dados...... void grava_dados(int cont){ FILE *fp; if(gravar==1 && cont<=50){ fp=fopen("CONDUTORES","a"); if((!fp) ){ printf("Impossível ler do ficheiro\n Função terminada!"); exit(1); } // gravar estes dados no fixeiro!!!! fprintf(fp,"%d ",cont); fprintf(fp,"Nome: %s\t",pessoa.nome); fprintf(fp,"Morada: %s %d-%d",pessoa.morada,pessoa.cp1,pessoa.cp2); fprintf(fp,"Data Nascimento: %d-%d-%d",pessoa.data_nasc.dia,pessoa.data_nasc.mes,pessoa.data_nasc.ano); fprintf(fp,"\tEstado Civil: %s",pessoa.es_civc); fprintf(fp,"\tSinistros Ultimos 5 Anos: %s ",pessoa.sin_5anosc); fprintf(fp,"\tData Emissao Carta: %d-%d-%d",pessoa.data_cond.dia,pessoa.data_cond.mes,pessoa.data_cond.ano); fprintf(fp,"\tDuracao do Seguro: %s",pessoa.duracaoc); fprintf(fp,"\tSeguro outros Ramos: %s",pessoa.outro_segc); fprintf(fp,"\n"); cont++; fclose(fp); } } o meu problema..... funcao ler ficheiro..... ler a partir do fixeiro estes dados e passar para o output!!!!! ex: dados guardados no fix 1 Nome aaaa Morada mmmmm 3333-888 data nascimento ...... 2 Nome bbbb Morada mmmmmm 6464-555 data nasc ........ . . . . 50 Nome kjsd ..................................................................... // o que kero mostrar ao utilizador.... quail o registo que pretende visualizar? ex. 2 ecra 2 Nome bbbb Morada mmmmmm 6464-555 data nasc ........ espero que compriendam o que kero... Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Julho 4, 2009 sim, compreendi agora. Mas eu agradeceria se você lesse o tópico "Leia antes de postar"... Ele não tem esse nome atoa... Te aconselho a dar uma lida nisso: http://forum.imasters.com.br/index.php?showtopic=340837 Compartilhar este post Link para o post Compartilhar em outros sites
Abruzi 0 Denunciar post Postado Julho 4, 2009 depois disto... caso ja tenha as 50 simulacoes guardadas e no caso da 51 queira guardar.... terei que apagar a primeira simulacao guardada e colocar na sim 50 a 51 e andar com as anteriores para traz.... ex. 1 nome ssss morada mmmmm 7777-888 ..... .. .. .. 50 Nome bbbb Morada mmmmmm 6464-555 data nasc ........ 1 passa a ser a segunda . . . 49 Nome bbbb Morada mmmmmm 6464-555 data nasc ........ 50 os novos dados.... Compartilhar este post Link para o post Compartilhar em outros sites
Abruzi 0 Denunciar post Postado Julho 7, 2009 Tou mesmo a precisar de ajuda!!!! Nao tou a conseguir.... alguem k possa ajudar... Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Julho 8, 2009 Ok... mostre-nos o seu código e diga-nos onde está a sua dificuldade. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Abruzi 0 Denunciar post Postado Julho 8, 2009 void grava_dados(){ FILE *fp,*fp2; if(gravar==1 && cont<=50){ fp=fopen("CONDUTORES","a"); fp2=fopen("VEICULOS","a"); if((!fp) && (!fp2)){ printf("Impossível ler do ficheiro\n Função terminada!"); exit(1); } fprintf(fp,"%d ",&cont); fprintf(fp,"Nome: %s\t",pessoa.nome); fprintf(fp,"Morada: %s %d-%d",pessoa.morada,pessoa.cp1,pessoa.cp2); fprintf(fp,"Data Nascimento: %d-%d-%d",pessoa.data_nasc.dia,pessoa.data_nasc.mes,pessoa.data_nasc.ano); fprintf(fp,"\tEstado Civil: %s",pessoa.es_civc); fprintf(fp,"\tSinistros Ultimos 5 Anos: %s ",pessoa.sin_5anosc); fprintf(fp,"\tData Emissao Carta: %d-%d-%d",pessoa.data_cond.dia,pessoa.data_cond.mes,pessoa.data_cond.ano); fprintf(fp,"\tDuracao do Seguro: %s",pessoa.duracaoc); fprintf(fp,"\tSeguro outros Ramos: %s",pessoa.outro_segc); fprintf(fp,"\n"); //Dados Sobre Veiculo!!!!!!! fprintf(fp2," %d ",&cont); fprintf(fp2,"Marca: %s ",veiculo.marca); fprintf(fp2,"\tMatricula: %s ",veiculo.matricula); fprintf(fp2,"\tAno Construcao: %d ",veiculo.ano_const); fprintf(fp2,"\tUso: %s",veiculo.usoc); fprintf(fp2,"\tForma: %s ",veiculo.formac); fprintf(fp2,"\tUtilizacao: %s ",veiculo.utilc); fprintf(fp2,"\tCilindrada: %d",veiculo.cilind); fprintf(fp2,"\tTransporta Mat. Perigosas: %s",veiculo.mat_perigc); fprintf(fp2,"\tNumero de Lugares: %d",veiculo.n_lugares); fprintf(fp2,"\tConcelho Circ. Frequente: %s",veiculo.conc); fprintf(fp2,"\n"); cont++; fclose(fp); fclose(fp2); //Ficheiros Binarios!!!!!!!!!!!!! } } void mostra_dados_condutor (){ FILE *fp1; char str[DIM]; fp1=fopen("Condutores","r"); if(!fp1){ printf("Impossivel Abrir Ficheiro!!!!!"); exit(1); } // nao tou a conseguir percorrer o fixeiro e mostrar os dados que pretendo // isto é depois de o 1 ser guardado e quera visualizar os dados // passar para output... // posicionar na posicao seguinte // caso grave 2 e querer visualizar os dados referentes a esta simulacao.. // passar para o output... assim sucessivamente.... printf("\n\t\tDados Condutor: \n\n"); printf(" %s \n ",str); printf("\n\n"); } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Julho 8, 2009 Aconselho a dar uma estudada em Listas Encadeadas. Você pode usar algum recurso?? como STL ou algo assim?? --- 1º Use a tag [.code], ninguem vai qrer ler seu código sem identação e td jogado. 2º pela mor neh pra q você digitar uma linha e aperta 5x o ENTER??? faça seu post o + limpo possivel. 3º Não de um 'up' em seu tópico, isso vai contra as regras do fórum. Próximo aviso será via MP, e você poderá ser punido. Qr ajuda??? Colabore com a organização da área. []s Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Julho 8, 2009 Quit, ele não deu up no tópico. A última postagem foi minha, e foi hoje mesmo. Eu pedi pra ele postar o código. Ja sobre o código. Cara, de uma estudada em estruturas, arquivos BINÁRIOS, listas encadeadas.... se não vai ficar difícil. Não da pra contruir um prédio sem os alicerces. você está gravando uma série de dados absolutamente inúteis no seu arquivo... é um arquivo de dados não um relatório!!! por exemplo: "Data Nascimento: 12-10-1987" só é importante a data: 12-10-1987! Sem contar que vai te facilitar muito na hora de ler o arquivo novamente! Pense em uma estrutura de um arquivo, por exemplo: a primeira linha conterá o nome e o endereço, separados por uma virgula. Na segunda, a duração do seguro e a data de nascimento... etc... Mesmo assim é trabalho absolutamente desnecessário... trabalhe com arquivos binários, guarde a struct inteira no arquivo e pronto! 1 linha de código: fwrite(&estrutura, sizeof(tipo), 1, fp); Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Julho 8, 2009 Victor é q eu exclui o post do 'up'; + td bem http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif []s Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Julho 8, 2009 ahhh... entendi, não olhei a lixeira, peço desculpas. Você tem toda razão! Compartilhar este post Link para o post Compartilhar em outros sites