1Skull Posted May 21, 2013 at 09:11 AM Report #508175 Posted May 21, 2013 at 09:11 AM (edited) 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. Edited May 21, 2013 at 11:03 AM by pmg GeSHi
HappyHippyHippo Posted May 21, 2013 at 09:21 AM Report #508177 Posted May 21, 2013 at 09:21 AM 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
1Skull Posted May 21, 2013 at 09:36 AM Author Report #508178 Posted May 21, 2013 at 09:36 AM 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
1Skull Posted May 28, 2013 at 03:56 PM Author Report #509434 Posted May 28, 2013 at 03:56 PM 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.
HappyHippyHippo Posted May 28, 2013 at 04:28 PM Report #509438 Posted May 28, 2013 at 04:28 PM 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
1Skull Posted May 28, 2013 at 04:44 PM Author Report #509449 Posted May 28, 2013 at 04:44 PM 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.
HappyHippyHippo Posted May 28, 2013 at 04:52 PM Report #509453 Posted May 28, 2013 at 04:52 PM responde à pergunta, se faz favor IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
1Skull Posted May 28, 2013 at 06:35 PM Author Report #509463 Posted May 28, 2013 at 06:35 PM A maneira é arranjar outro azulejo, tirar o partido ou estalado, arranjar a infiltração e só no fim colocar o azulejo novo.
HappyHippyHippo Posted May 28, 2013 at 07:59 PM Report #509473 Posted May 28, 2013 at 07:59 PM 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
1Skull Posted May 28, 2013 at 10:12 PM Author Report #509498 Posted May 28, 2013 at 10:12 PM o requisito do azulejo é o tipo, a cor, o tamanho
HappyHippyHippo Posted May 28, 2013 at 11:32 PM Report #509511 Posted May 28, 2013 at 11:32 PM 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
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now