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


Anmelden zum Antworten