ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
2015
2015
EMPFEHLEN
-
Hi,
also ich habe einen CString, ermittle seine Länge und schreibe das Ergebnis in eine Datei. Allerdings fehlt ein Stück. Wenn ich die Anzahl der Bytes, die in die Datei geschrieben werden verdopple steht alles in der Datei. Kann mir jemand sagen wie das kommt?
Folgender Code:
gruß chuqaCode :1 2 3 4 5 6 7
int length = outstr.GetLength(); // length *= 2; // dann funktionierts if (file.Open(m_strFileName, CFile::modeCreate | CFile::modeReadWrite, &ex)){ // AfxMessageBox(outstr, MB_OK); file.Write(outstr, length); file.Close(); }
-
Versuchs mal mit
file.Write(outstr.GetBuffer(length), length);
outstr.ReleaseBuffer();
file.Close();
Für Variablennamen jeglicher Art solltest du eine Identifikationsmöglichkeit einbauen d.h
CString strName("");
int nName(0); // Ich verwende hier bewusst "n" da "n" in diesem Fall die Zahlenmenge N angibt, üblich ist wohl "i" für Integer
char cName("");
gewöhn dir sowas lieber gleich an, irgendwann wächst der Code und du musst dann immer nachschauen von welchem Typ die verwendete Variable ist.
-
Hallo,
das kann daran liegen, das dein Projekt UNICODE verwendet und damit alle Strings 2 Byte pro Zeichen verwenden. Die Methode "GetLength()" gibt dir aber nur die Anzahl der Zeichen, unabhängig von ihrem Speicherbedarf, zurück.
Die benötigte Puffergröße sollest du daher so ermitteln:
GrußCode cpp:1
int length = outstr.GetLength() * sizeof(TCHAR);
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
@MCoder: danke, so läuft es korrekt

@semnix: Hast ja Recht, ich halte mich eigentlich auch an die Code Conventions. Der Quelltext stammt aus einem Testfile, deswegen nicht die Einhaltung der Konventionen. Aber stimme dir zu, man sollte das eigentlich konsequenter Weise überall einhalten
.
Danke euch
Ähnliche Themen
-
CString in CFile schreiben
Von Alex braucht Hilfe im Forum VisualStudio & MFCAntworten: 3Letzter Beitrag: 08.07.10, 09:03 -
Ant compiliert nicht kompletten Code
Von Klopfer im Forum JavaAntworten: 2Letzter Beitrag: 01.05.09, 19:29 -
CFile und CString
Von SCIPIO-AEMILIANUS im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 28.09.07, 16:35 -
CList<CString,CString> list; einer Funktion übergeben ?
Von Indian im Forum C/C++Antworten: 15Letzter Beitrag: 26.10.04, 15:06 -
CFile read Line/write Line
Von the_duke_at im Forum VisualStudio & MFCAntworten: 0Letzter Beitrag: 24.07.04, 14:00





Zitieren
Login






