Datenbank probs
-
Hallo.
Ich habe folgendes Problem, ich habe ein kleines Programm geschrieben mit
dem man seine Adressen verwalten kann. Die Personendaten werden nach Nachnamen sortiert in Dateien geschrieben. Das klappt soweit auch alles, was heißt das das prog für jeden neuen Namen für den noch keine Datei vorhanden ist eine neue eröffnet und ansonsten die Daten an die existierende Datei anhängt (nichts wirklich welt bewegendes ich weis aber ich bin stolz drauf). Jetzt möchte ich aber eine Ausgabe machen, die wenn ich einen Namen eingebe, mir die richtigen Daten zur Person ausgibt.
Hier ist erstmal der Code:#include <stdlib.h> #include <stdio.h> struct adresse { char name[20]; char vorname[20]; char nummer[20]; char handy[20]; char strasse[30]; char ort[40]; }eingabe; void datei_abfrage(char *datab) { //abfrage in welche datei die adresse gespeichert werden soll if(eingabe.name[0]=='a'||eingabe.name[0]=='A')*datab='a'; if(eingabe.name[0]=='b'||eingabe.name[0]=='B')*datab='b'; if(eingabe.name[0]=='c'||eingabe.name[0]=='C')*datab='c'; if(eingabe.name[0]=='d'||eingabe.name[0]=='D')*datab='d'; if(eingabe.name[0]=='e'||eingabe.name[0]=='E')*datab='e'; if(eingabe.name[0]=='f'||eingabe.name[0]=='F')*datab='f'; if(eingabe.name[0]=='g'||eingabe.name[0]=='G')*datab='g'; if(eingabe.name[0]=='h'||eingabe.name[0]=='H')*datab='h'; if(eingabe.name[0]=='i'||eingabe.name[0]=='I')*datab='i'; if(eingabe.name[0]=='j'||eingabe.name[0]=='J')*datab='j'; if(eingabe.name[0]=='k'||eingabe.name[0]=='K')*datab='k'; if(eingabe.name[0]=='l'||eingabe.name[0]=='L')*datab='l'; if(eingabe.name[0]=='m'||eingabe.name[0]=='M')*datab='m'; if(eingabe.name[0]=='n'||eingabe.name[0]=='N')*datab='n'; if(eingabe.name[0]=='o'||eingabe.name[0]=='O')*datab='o'; if(eingabe.name[0]=='p'||eingabe.name[0]=='P')*datab='p'; if(eingabe.name[0]=='q'||eingabe.name[0]=='Q')*datab='q'; if(eingabe.name[0]=='r'||eingabe.name[0]=='R')*datab='r'; if(eingabe.name[0]=='s'||eingabe.name[0]=='S')*datab='s'; if(eingabe.name[0]=='t'||eingabe.name[0]=='T')*datab='t'; if(eingabe.name[0]=='u'||eingabe.name[0]=='U')*datab='u'; if(eingabe.name[0]=='v'||eingabe.name[0]=='V')*datab='v'; if(eingabe.name[0]=='w'||eingabe.name[0]=='W')*datab='w'; if(eingabe.name[0]=='x'||eingabe.name[0]=='X')*datab='x'; if(eingabe.name[0]=='y'||eingabe.name[0]=='Y')*datab='y'; if(eingabe.name[0]=='z'||eingabe.name[0]=='Z')*datab='z'; } void speicher_fkt() { FILE *fpdatei; char data[6]; //char c; //int index=0; datei_abfrage(&data); strcat(data, ".txt"); fpdatei=fopen(data,"a"); if(fpdatei==(FILE *)NULL) { printf("\nKann die Datei nicht öffnen %d\n",errno); system("pause"); exit(1); } //Zählen der Einträge in der jeweilligen Datei und erhöhung des index /* while((c=fgetc(fpdatei)) != EOF) { if(c == '\n')++index; }*/ //Abspeichern der Variablen und schliessen der Datei fprintf(fpdatei,"%d. ",index+1); fprintf(fpdatei,"%s ",eingabe.name); fprintf(fpdatei,"%s ",eingabe.vorname); fprintf(fpdatei,"%s ",eingabe.nummer); fprintf(fpdatei,"%s ",eingabe.handy); fprintf(fpdatei,"%s ",eingabe.strasse); fprintf(fpdatei,"%s ",eingabe.ort); fprintf(fpdatei,"\n"); fclose(fpdatei); } int main(void) { char ende; do { system("cls"); printf("Eingabe Nachname: "); scanf("%s", &eingabe.name); printf("Eingabe Vorname: "); scanf("%s", &eingabe.vorname); printf("Eingabe Rufnummer (Vorwahl/Nummer): "); scanf("%s", &eingabe.nummer); printf("Eingabe Handynummer (Vorwahl/Nummer): "); scanf("%s", &eingabe.handy); printf("Eingabe Strasse (Strasse/Hausnr): "); scanf("%s", &eingabe.strasse); printf("Eingabe Wohnort (PLZ/Ort): "); scanf("%s", &eingabe.ort); speicher_fkt(); printf("Wollen Sie noch eine Adresse eingeben(J/N): "); scanf("%s", &ende); }while(ende=='J'||ende=='j'); }
Wenn mir einer von euch dabei helfen könnte wäre das echt klasse.
schon mal danke im vorraus.