005
15.04.2003, 14:09 Uhr
~Heiko
Gast
|
Vergleichen tust du, indem du die Textdatei ausliest und dann das ausgelesene mit dem CString str vergleichts. Also;
Nehmen wir mal an deine Benutzer.txt hat folgende Struktur: anzahl_benutzerlogins Benutzername <Tabulator> Passwort <newline> Benutzername2 <Tabulator> Passwort2 <newline> ...
C++: |
typedef struct{ char UserID[30]; char Password[20]} Login
File *fp; int anzahl,i,j; Login *logins; char helpchar;
fp=fopen("Benutzer.txt",rb); fscanf(fp,"%d",&anzahl); fseek(fp,2,SEEK_CUR);
logins= new Login[anzahl];
for(i=0;i<anzahl;i++){ j=1; helpchar=fgetc(fp); while(helpchar!=9){j++;helpchar=fgetc(fp);} fseek(fp,-j,SEEK_CUR); fgets(logins[ i].UserID, j, fp); fgetc(fp); //Tabulator killen
j=1; helpchar=fgetc(fp); while(helpchar!=9){j++;helpchar=fgetc(fp);} fseek(fp,-j,SEEK_CUR); fgets(logins[ i].Password, j, fp);
fseek(fp,2,SEEK_CUR); }
fclose(fp);
|
Jetzt sollten in dem array die Usernamen und Passwörter stehen. (Vorsicht hab den Code direkt ins forum gehackt und nicht getestet.) Als erstes musst du dann gucken ob die UserID überhaupt enthalten ist, und dann gegebenenfalls das dazugehörige Passwort vergleichen. Hier mal nur der Passwortvergleich, angenommen in str steht das Passwort
C++: |
if(0==strcmp(str.GetBuffer(str.GetLength()), logins[ j].Passwort) ){ //j musst du aus dem Usernamenvergleich ermitteln //richtiges Passwort }else{ falsches Passwort }
|
Nicht vergessen logins wieder freizugeben
hoffe ich habe deine Frage beantworten können |