title image


Smiley Re: fstream mit arrays
>>CStringArray straName;

>>CWordArray waMitgliedsNr;

CStringArray ist ein Feld/Array aus Strings vom Typ CString.

CWordArray ist ein Feld/Array aus Zahlenwerten des Typ's Word.



Es gibt übrigens:

CByteArray

CWordArray

CDWordArray

CUIntArray

CPtrArray

CStringArray





>>straName.SetSize(iSize,-1);

>>waMitgliedsNr.SetSize(iSize,-1);

Mit SetSize wird einfach die neue größe des Arrays festgelegt.



Jetzt noch eine Erklährung zum Beispiel.

(Es kann durchaus ein Fehler drinnen sein, da ich alles aus dem Gedächtnis geschrieben hatte.)



Der Programmschnipsel funktioniert so, dass er alle Benutzer und deren Mitglieds-Nummer eingelesen werden.

Dabei wird nur darauf geachtet dass die Daten mit einem Strichpunkt ';' voneinander getrennt sind und nach jedem Datensatz ein Zeilenvorschub kommt.

(Alle anderen Fehler werden in diesem Beispiel nicht abgefangen.)



Um die passende Mitgliedsnummer zum Namen zu finden mußt du nur schaun in welcher Zeile sich der Name befindet und mit dieser Zeilennummer im Mitgliedsnummernarray nachschaun.

Das Codebeispiel ist übrigens als Abschnitt einer Klassen-Funktion gedacht.



Du kannst das Ganze aber auch mit einer Datei pro Benutzer lösen, welches aber zu einer gewaltigen Anzahl von Dateien führt.

(Erspart dir aber das Einlesen aller Daten.)



Die Abfrage über eine Klasse die mit einzelnen Dateien arbeitet würde ungefähr so aussehen:



.

.

.

CBenutzer cBenutzer; // Deine Kennwort-Vergleichsklasse

CString strName; //String-Klasse

CString strKennwort;

.

.

.

if(cBenutzer.Vergleich(strName,strKennwort))// Aufruf der Klassenfunktion um zu vergleichen ob das Kennwort mit dem Benutzernamen übereinstimmt.

{

//Kennwort passt zum Benutzer

}

else

{

//Kennwort passt nicht zum Benutzer

}





Und um die richtige Datei zu finden, lese dir mal die Beschreibung zu FindFile und FindNextFile durch.

(Ich will dir ja nicht das ganze Programieren der Klasse abnehmen.)



Wenn du für die Dateinamen die Benutzernamen wählst, dann mußt du nur das in der Datei abgespeicherte Kennwort auslesen um es mit der Eingabe zu vergleichen.

(Dazu verwendest du einfach die ifstream Funktion wie ich es dir vorher gezeigt habe.)



Ich würde übrigens die vorgefertigten Hashcode-Routinen zur Verschlüsselung der Dateinamen und der Kennörter verwenden.



Weiters würde ich mir an deiner Stelle mal genau anschaun wie eine Klasse funktioniert.

(Das würde mir sicher auch nicht schaden weil mein Wissen über Klassen auch nur durch Aussprobieren kommt.)

mfg Sepp

 

Gruppenfoto 2005:[Y23]

Gruppenfoto 2006:[X31]


Bei mir steht der nicht für Wissen, sondern nur für viel Fragen.


Irren ist menschlich sprach der Igel und stieg herunter von der Bürste.




geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: