Zeilenumbruch beim schreiben in datei
-
hi ich will in eine datei schreiben hier mein code
UpdateData(true); CString TEXT = myList.GetItemText(i,0) + ":" + myList.GetItemText(i,1) + ":" + myList.GetItemText(i,2) + "\r\n"; WriteFile(hFile, TEXT, sizeof(TEXT), &dwNumWritten,NULL);
wie kann ich es jetzt machen das er bei jedem neuen schreiben in ne neue zeile schreibt da dies in ner schleife läuft habs mit "\r\n" probiert ging aber ned ..
Danke lG Splipha
-
Schau dir mal die Klassen ofstream und ifstream an.
Und ein sizeof(CString) wird dir nicht die Größe des
eigentlichen objektes liefern.Devil
-
Hallo,
wenn du schon im MFC-Forum die Frage stellst, dann hier auch die MFC-Lösung, verwende dazu CStdioFile::WriteString:
damit kann man wunderbar gleich CStrings (die ja von GetItemText zurückgeliefert werden) direkt in eine Datei schreiben (als Zeilenabschluß-Zeichen ist nur ein Anhängen von "\n" nötig, nicht "\r\n").
MfG
-
Ok habs jetzt umgebaut und es geht auch
UpdateData(true); CStdioFile file("koord_liste.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeText ); CString TEXT = myList.GetItemText(i,0) + ":" + myList.GetItemText(i,1) + ":" + myList.GetItemText(i,2) + "\n"; file.WriteString(TEXT);
jetzt noch das Prob das er immer alles überschreibt ... wie kann ich den immer ans Ende der Datei gehen so das er es nicht alles überschreibt ... hab in der MSDN nix zu gefunden ...
DANKE
-
Hast du schon SeekToEnd versucht?
-
nö aber funzt jetzt wunderbar
DANKE
-
klappt doch ned so wirklich ...
UpdateData(true); CStdioFile file("koord_liste.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeText ); CString TEXT = myList.GetItemText(i,0) + ":" + myList.GetItemText(i,1) + ":" + myList.GetItemText(i,2) + "\n"; file.SeekToEnd(); file.WriteString(TEXT);
aber die anwendung sollte doch so stimmen oder SeekToBegin will auch ned
am ende hab ich nur ein Eintrag in dem file
-
-
Also, ich hätte das so gemacht :
UpdateData(true); CStdioFile file; if(file.Open("koord_liste.txt", CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite )) { file.SeekToEnd(); CString TEXT = myList.GetItemText(i,0) + ":" + myList.GetItemText(i,1) + ":" + myList.GetItemText(i,2) + "\n"; ; file.WriteString(TEXT); }
Gruß
:: NoName ::
-
Ist doch garkein Unterschied ob ich erst den CString zusammentstell und dann ans ende gehe oder umgekehrt...
-
Achte auf das CFile::modeNoTruncate | CFile::modeWrite !!!
Gruß
:: NoName ::
-
DANKE ... hatte es übersehn