Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Mfc - Dialogfrage

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.04.2003, 13:50 Uhr
~Firestorm
Gast


Ich habe heute ein Einfachen Dialog erstellt.
Jedoch sollen dort paar funktionen rein:
Wie bei win98 am anfang das anmeldeformular also Account und Passwort.
Jedoch will ich gerne das er in einer TXT datei kontrolliert ob der Accountname und das passwort auch korrekt sind.
Wenn ich dann auf Login gehe sollte entweder ein weiterer Dialog kommen oder falls das passwort oder accountfeld falsch ist ein fehler auftauchen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.04.2003, 15:32 Uhr
~Chris
Gast


Und was genau ist jetzt dein Problem?

mfg
Chris
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.04.2003, 18:29 Uhr
~Firestorm
Gast


Ich weiß nicht wo ich den code hinschreiben muss und was das für einer ist damit der das Kontrolliert und zum nächsten dialog spruingt.
Also ich weiß halt nicht wie man die buttons mit dialoge verknüpft und die Textfelder mit .TXT datein verknüpft und kontrolliert
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.04.2003, 19:10 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ich würde dir vorschlagen nicht direkt mit dem Passwortdialog zu starten, sondern dein Hauptdialog zu verwenden.
Wenn dieser gestartet wird kannst du dann ja sofort den Passwortdialog modal aufrufen.

z.B. so

C++:

Passwortdialog dlg; /* oder wie immer auch die zu deinem Dialog zugehörige Klasse heisst */

if(dlg.doModal!=1) EndDialog(0) /*wenn dein Passwortdialog keine 1 zurueckliefert beendet sich das ganze Programm*/




in dem Passwortdialog selber führst du dann den check durch, ob das Passwort stimmt. Wenn alles in Ordnung ist, mit EndDialog(1) beenden, sonst halt mit z.B. EndDialog(0);


Die Textfelder kannst du nicht "direkt" mit einer txt-datei verknüpfen.
Mit der Methode GetDlgItem(IDC_EDIT..)->GetWindowText(str); kannst du dir aber den Inhalt des Textfeldes in einen CString (in diesem Falle str) schreiben lassen und diesen dann mit der txt-datei vergleichen.

Wenn du sonst noch Fragen hast formuliere diese mal eine bischen konkreter und sage was genau du weisst und was nicht.
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.04.2003, 13:13 Uhr
~Firestorm
Gast


jop so wie du das oben geschrieben hast hatte ich es [so ähnlich]
Aber ich würd gerne wissen wie man das mit str verlinkt und das er den str mit einer txt datei vergleicht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.04.2003, 13:18 Uhr
~Firestorm
Gast


Mhh immoment kapier ich garnix.
Egal ich mach das Loinprogramm dann halt in DOS da kann ich das nähmlich leider in MFC kapier ich das nicht
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: