Supportnet Computer
Planet of Tech

Supportnet / Forum / SW-Sonstige

C++: Daten aus Datei in Variablen einlesen





Frage

Hallo, ich möchte mittels eines Programmes in C++, Daten aus einer Datei (mehrzeilig und mit Blank getrennt) in Variablen einlesen und anschließend anders angeordnet (konvertiert) in eine andere Datei speichern. Für das Öffnen und Ladender Datei benutze ich folgende Funktionen: void CTest1Dlg::OnOpenfile() { CFileDialog Datei(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"NMEA - NMEA Format |*.nmea|Alle Dateien |*.*|",NULL); Datei.DoModal(); if (Datei.DoModal()==IDOK) { UpdateData(TRUE); m_sFileName=Datei.GetPathName(); UpdateData(FALSE); } m_bLoadFile.EnableWindow(TRUE); } void CTest1Dlg::OnLoadfile() { /*CFile file; CString sBuffer; if (file.Open(m_sFileName,CFile::modeReadWrite ,NULL)!=0) { UpdateData(TRUE); m_sStatus="Datei erfolgreich geöffnet"; UpdateData(FALSE); } file.SeekToBegin(); file.Write("Test \n\n",5); file.Write("2.Zeile",10); file.Close(); } Ich habe aber Probleme mit dem Auslesen wie bekomme ich die Daten in meine Variablen (sind in einer Struktur enthalten)? Gibt es gute Funktionen von C++ zum Abspeichern in anderer Reihenfolge (Konvertierung)? Für jegliche Hilfe in diesem Gebiet wäre ich dankbar

Antwort 1 von Das_Urmel

*räusper*
Bisher schreibst du lediglich, ausser nem Buffer in den du nix einliest hast du keine Struktur angelegt.
mfg
Michael Bormann

Antwort 2 von Suppenkasper

Hallo urmel,
das mit dem Einlesen ist ja mein Problem ich bekomme da immer ziemlich viele Fehlermeldungen. Mein letzter Versuch war beispielsweise mit getline. Aber das hat nichts funktioniert. Für die Daten aus der Datei habe ich noch eine Klasse Point (da es versch. Punktkoordinaten sind, die ich konvertieren will) mit vier Integerzahlen als Variable. Ich dachte, es mir so das ich die Ursprungsdatei zeilenweise einlese bis Ende (mit eof?). Zwischendrin soll er immer sich die Daten aus der jeweiligen Zeile (buffer) nehmen und ein neues Mitglied der Klasse kreiren (new/delete?). Die ganzen Mitglieder werden dann in einer verketteten Liste abgelegt, die ich mir schon geschrieben habe und funktioniert. Ich hoffe diese Erklärungen helfen weiter.
MfG
Suppenkasper

Antwort 3 von Suppenkasper

Hallo Urmel,
seh ja ein habe ein paar Erklärungen vergessen. Das mit dem Einlesen ist auch noch so ein Problem von mir. Der Buffer stammt von meinem letzten Versuch mit getline. Ich wollte euch nur den funktionierenden Code geben, da manchmal ziemliche Hirngespinste von mir dabei sind.
Ich habe mir das so gedacht. Ich will die Datei öffnen, zeilenweise einlesen bis zum Ende (eof oder Überprüfung auf 0x0D,0x0C?) und zwischendrin die Daten der jeweiligen Zeile in die Variablen schreiben(die Variablen sind in einer Klasse enthalten), anlegen der neuen Objekte (new/delete). Die ganze Objekte werden dann in einer einfach verketteten Liste gespeichert, welche ich schon geschrieben habe und auch gut funktioniert.
Ich hoffe diese Erklärungen helfen euch weiter.
MfG
Suppenkasper