CFile
-
hab ein problem mit cfile
will eine datei in einen string einlesen
aber was muss ich b ei read als ersten und zweiten parameter angeben?!?
-
Die MSDN als Freund und Helfer.
MSDN schrieb:
Reads data into a buffer from the file associated with the CFile object.
virtual UINT Read( void* lpBuf, UINT nCount );- lpBuf
Pointer to the user-supplied buffer that is to receive the data read from the file. - nCount
The maximum number of bytes to be read from the file. For text-mode files, carriage return–linefeed pairs are counted as single characters.
Was gibt es daran nicht zu verstehen?
Grüssli
- lpBuf
-
OK hab ich übersehen^^
aber wenn ich jetzt wieder write mache und will zeilen umbruch einfügen
kommt nichtsist was am code falsch?
strBreak.Format("\n"); file.Write(strBreak.GetBuffer(0), strBreak.GetLength());
-
keine antwort?

-
Sei mal nicht so ungeduldig. Wir haben alle hier (obwohl es sehr unglaublich klingt) ein Real Life (auch RL genannt ^^) ... Das Leben ausserhalb der Graphikkarte. Bzw. das Leben mit der besten Graphikkarte der Welt. Dafür mit der schlechtesten Engine, hat nicht mal eine Save und Load Funktion ... äh ja wo waren wir?

Was heisst kommt nichts? Wo kommt nichts, was kommt nicht?
Vielfach wird für eine richtige neue Zeile ein \r\n verlangt, bzw. vor allem bei Windows. Bei Windows oder noch besser Microsoft bedeutet ein \n eigentlich nur eine Neue Zeile und das kann dann auch nur ein Zeileneinschub sein. \r\n dagegen ist eine wirkliche neue Zeile.Zudem verlangt GetBuffer die Minimumlänge des Strings. Wenn du 0 übergibst, wird es auch bei 0 bleiben. Wenn du daher alles im String willst, nimm einfach die Funktion GetBuffer (ohne Parameter).
Zum schreiben kann man übrigens auch direkt das CString Objekt als Puffer angeben.Wenn du allerdings lesbare Strings in eine Datei schreiben willst, dann empfehle ich dir CStdioFile. Sehr nützlich zum beschreiben von z.b. *.txt Dateien.
Wenn du Daten nur Zusammenpacken willst, dann würde ich dir empfehlen mal CArchive in der MSDN anzuschauen.
Grüssli
-
Du scheint keine aktuelle MFC Version zu nutzen... d.h. muss es
file.Write(strBreak.GetBuffer(strBreak.GetLenght()), strBreak.GetLength());Heißen...