Config-Datei schreiben / auswerten
-
hast du ein Beispiel dafür?
Das Auslesen ist kein Problem.
Aber wie kann ich eine bestimmte Zeile der Datei beschreiben?
-
cpp_anfaenger schrieb:
hast du ein Beispiel dafür?
Aber wie kann ich eine bestimmte Zeile der Datei beschreiben?Das dürfte in Deinem Fall nur sehr umständlich (wenn überhaupt) möglich sein. Besser (einfacher) ist es, die ganze Datei einzulesen, Deine Änderungen vorzunehmen, und die ganze Datei wieder wegzuschreiben.
-
Das ist leichter ja, aber eine unschöne Lösung, wenn die Datei über mehrere Seiten geht.
Sowas wie TStringList wäre perfekt.
-
cpp_anfaenger schrieb:
Das ist leichter ja, aber eine unschöne Lösung, wenn die Datei über mehrere Seiten geht.
Sowas wie TStringList wäre perfekt.Mit TStringList ist das auch nicht anders, da müsstest du auch die komplette Datei in die Stringliste laden, dort bearbeiten und am Ende wieder abspeichern.
-
cpp_anfaenger schrieb:
hast du ein Beispiel dafür?
Das Auslesen ist kein Problem.
Aber wie kann ich eine bestimmte Zeile der Datei beschreiben?Eine Datei zeilenweise einzulesen und in die einzelnen Zeilen 'reinzugucken' ist ja kein Problem, das weißt du auch.
Du musst dir ein Format ausdenken, wie du deine Zeile bzw. deinen Datensatz aufbauen willst - dementsprechend wird das auch in einzelne Bestandteile zerlegt.
-
nein ich weiß nicht wie man eine Datei zeilenweise beschreibt, wie man alles in eine Zeile schreibt.
Wie liest man zeilenweise ein und aus ?
-
Das zeilenweise schreiben hab ich nun hingekriegt
fstream f f.open("xxx",ios::out); for (i= 1; i < 11; i++ ) { f << "zeile" i+1 << "\n"; } f<<endl; f.close();
Jetzt würd ich nur noch gerne Zeile X aus der Datei auslesen können.
-
Du kannst dazu
std::getline
benutzen und alle Linien einlesen und dann die gewünschte rauspicken.
-
Das habe ich nun versucht.
fstream f; char cstr[256]; char* myarr[4]; for(i=0, i < 4, i++ ) { f.getline(cstr,sizeof(cstr)); myarr[i] = cstr; }
alle myarr[i] ist nun der letzte Wert in myarr[3]
Was muss ich tun dass myarr[i] auch den Wert an Position i hat???
-
Eingabe-File
zeile1 zeile2 zeile3 zeile4
Ausgabe-File
zeile4 zeile4 zeile4 zeile4
-
Ich würde das in etwa so machen:
std::ifstream in ( "file.txt" ); std::string line; std::vector< std::string > lines; while ( std::getline ( in, line ) ) lines.push_back ( line );