aus Datei lesen
-
hi Leutz
ich bin MFC-Neuling und hab da nen Problem:
ich hab mit Serialisierung CStrings in eine Datei geschrieben.
Diese strings stammen aus einer einfach verketteten Liste(selbstgeschrieben).
das einlesen soll folgendermaßen von statten gehen:
ich lese den ersten CString aus der Datei und hänge ihn dann in die Liste ein.
Aber: ich muss dass ja sooft machen, bis keine CStrings mehr in der Datei sind.
Wie aber kann ich die einzeln einlesen und überprüfen ob das letzte Element erreicht ist, denn wenn ich ar>>cstring einlese liest er mir die gesammte datei ein.
hoffe das war einigermaßen verständlich.
Danke für eure Hilfe
Sebastian
-
Ich habe von Serialisierung keine Ahnung...
Aber ich würde das mit CStdioFile machen. Guck mal, ob du mit der Suche nach *CStdioFile* glücklich wirst.
-
mxpower schrieb:
hi Leutz
ich bin MFC-Neuling und hab da nen Problem:
ich hab mit Serialisierung CStrings in eine Datei geschrieben. ...Wie sieht denn Dein Serialisierungsmechanismus zum Speichern aus? Den brauchst Du doch nur zum Laden wieder herumdrehen. Poste doch mal Code.
Ansonsten: wenn Du die einfach verkettete Liste weglassen kannst dann speicher Deine CStrings in einer von CList abgeleiteten Klasse. CList hat soweit ich weiß eine eigene Serialisierungsmethode, die Du dann nur aufrufen musst. Ansosnsten musst Du halt über Schleifen das ganze steuern.
-
Hi,
hier mal ein Beispielcode, wie ich das gemacht habe://Schreiben ins File CStdioFile InFile; if (InFile.Open("log\\MyLog.txt", CFile::modeWrite) ) { //Ende der Datei suchen InFile.SeekToEnd(); //Zeilenumbruch einfügen CStrMyRegValue.Format("\n%s",CStrMyRegValue); InFile.WriteString(CStrMyRegValue ); InFile.Close(); } //Lesen vom File... CStdioFile MyFile; if(MyFile.Open("log\\MyLog.txt",CFile::modeRead)) { //Zeilenweise auslesen des Files CString ReadString; while(MyFile.ReadString(ReadString)) { // Hinzufügen deines Strings zur CList } MyFile.Close(); }
Das ist meine Lösung, allerdings mit entsprechend passendem Schreiben in die Datei, müsste aber eigentlich auch dann passen, wenn du anders schreibst.
Grüßle Squeegee
-
Ach so, hab ich vergessen:
Die Datei MyLog.txt muss existieren, in der Version legt er sie nicht automatisch an.
Beim debuggen ist das Stammverzeichnis das, wo deine Projektdatei liegt.
Startest du das Programm über die Exe ist es das Verzeichnis, wo die Exe liegt.
Ich hab mich nämlich auch drüber gewundert, warum das nicht gefunzt hat...Gruß Squeegee
-
ich danke euch vielmals ich habs jetzt hinbekommen und endlich funktioniert es.
thx