1Skull 0 Denunciar mensagem Publicado 21 de Maio de 2013 (editado) Bom dia a todos, é o seguinte eu estou a fazer um programa em C que armazena o nome, bi, morada e numero de telefone de um cliente. eu já consigo inserir, pesquisar, listar, agora falta-me uma opção que é listar. Este é o código que tenho para procurar. Se alguém me puder dar uma ajudinha agradecia, não preciso do código seja específico, só alguma luzes. int main ( void ) { FILE *clientes; struct clientes add; char matriz[14]="Numero BI/CC: ",i[10],j[19]; int auxiliar=0,auxiliar2=0; int a; static const char filename[] = "clientes.txt"; FILE *file = fopen ( filename, "r+" ); puts("Intruduza o bi"); gets(i); strcpy(j,matriz); strcat(j,i); if ( file != NULL ) { char aux1 [128]; char line [128]; /* or other suitable maximum line size */ while ( fgets ( line, sizeof line, file ) != NULL) /* read a line */ { line[strlen(line) - 1] = '\0'; if(strcmp(line,j)==0) { //fputs ( line, stdout ); /* write the line if condition*/ auxiliar2=1; } if(auxiliar2==1||strcmp(line,"\n")==0){ if(strcmp(line,"*----------*")==0){ break; }else{ fputs ( line, stdout ); printf("\n"); } } } fclose ( file ); } else { perror ( filename ); /* why didn't the file open? */ } } Aguardo uma resposta. Fórum brutal. Editado 21 de Maio de 2013 por pmg GeSHi Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 21 de Maio de 2013 pela maneira como estas a informação do ficheiro suponho que tens um ficheiro de texto com este aspecto: pessoa_1-info_1: xpto pessoa_1-info_2: xpto pessoa_1-info_3: xpto pessoa_2-info_1: xpto pessoa_2-info_2: xpto pessoa_2-info_3: xpto seja esse o caso ou um ficheiro binário, o que necessitas é de ler toda a informação de uma pessoa e verificar se a informação lida é a pretendida. se não leres a informação toda, o próximo passo do ciclo irá ler informação da pessoa anterior e não da pessoa iterada. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
1Skull 0 Denunciar mensagem Publicado 21 de Maio de 2013 O ficheiro está assim: Numero BI/CC: 1 Nome: xpto Numero NIF: 123 Morada: rua xxx Contacto: 342324 *----------* //este símbolo é o que separa do outro cliente Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
1Skull 0 Denunciar mensagem Publicado 28 de Maio de 2013 Boa tarde, já resolvi o problema de alterar os dados tenho é um problema sempre que altero os dados ele só altera do primeiro por exemplo não consigo alterar os do 2 utilizador ou 3. Se poderem ajudar agradeço. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 28 de Maio de 2013 vais ter mais problemas do que esse ... um bom exemplo são os azulejos de uma casa de banho: imagina que queres substituir um azulejo partido ou estalado, qual é o requisito para colocares um outro azulejo na parede de maneira a não teres infiltrações ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
1Skull 0 Denunciar mensagem Publicado 28 de Maio de 2013 Eu consigo pesquisar, por exemplo eu pesquiso por Bi: 1 e ele apresenta os dados: Numero BI/CC: 1 Nome: xpto Numero NIF: 123 Morada: rua xxx Contacto: 342324 Para alterar não é preciso existirem requisitos, por exemplo so o utilizador se enganar a escrever o bi por exemplo. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 28 de Maio de 2013 responde à pergunta, se faz favor IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
1Skull 0 Denunciar mensagem Publicado 28 de Maio de 2013 A maneira é arranjar outro azulejo, tirar o partido ou estalado, arranjar a infiltração e só no fim colocar o azulejo novo. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 28 de Maio de 2013 eu não perguntei como trocar, mas os requisitos do azulejo. imagina que queres substituir um azulejo partido ou estalado, qual é o requisito para colocares um outro azulejo na parede de maneira a não teres infiltrações ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
1Skull 0 Denunciar mensagem Publicado 28 de Maio de 2013 o requisito do azulejo é o tipo, a cor, o tamanho Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 28 de Maio de 2013 o requisito do azulejo é o tipo, a cor, o tamanho o que interessa aqui é o tamanho (a cor não interessa para o isolamento) se o teu azulejo não for do tamanho certo, ou não cabe ou fica frinchas. o mesmo irá acontecer ao teu ficheiro de dados. se a actualização do ficheiro não for exactamente igual em número de bytes, ou - (se for grande demais) estás a apagar dados de outro registo - (se for pequeno demais) ficará lixo entre registos que, muito provavelmente, irá criar erros de leitura IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites