escape sequences funktionieren nicht. speziell \n, \t funktioniert allerdings
-
Hallo.
Ich habe ein Problem mit der escape sequence \n:
Ich habe zuerst mal folgenden String:#define XML_STARTUP TEXT("<StartupInfo>%s</StartupInfo>\t\n<Errorlog>\n\n</Errorlog>")Diesen String gebe ich dann in einer Datei aus, mit WriteFile(...)
Die Ausgabe sieht dann so aus, dass das \t korrekt verarbeitet ist, aber das \n nur als Rechteck dargestellt wird.Wenn ich die Ausgabe der Datei hier rein kopiere, dann wird alles richtig aufgelößt. Äußerst seltsam.
[
Dierekt aus der Datei kopiert:
<StartupInfo>log\ErrorLog.txt</StartupInfo>
<Errorlog></Errorlog>
] richtig dargestellt, aber in der Datei nicht!!!
Bitte um Hilfe.Gruß
Alex
-
BS? Für Windows brauchst du \r\n
-
...oder musst die Datei im Textmodus öffnen...
-
Hallo, ich mach das jetzt anders, geht aber immer noch nicht.
BS ist Windows. Das TEXT("") Makro gibs doch nur unter Windows!?
Ich öffne jetzt die Datei mittels eines wofstream Objektes, und zwar binary, das sieht dann so aus:
... #define XML_STARTUP TEXT("<StartupInfo>%s</StartupInfo>\t\n<Errorlog>\n\n</Errorlog>") ... int len = wsprintf(buffer, XML_STARTUP, m_logFile[m_iFileId]->szCompFileName); OpenLogFile(FILE_WRITE); m_logFile[m_iFileId]->pFileOut->write(buffer, len); CloseLogFile();Also:
In buffer kommt zuerst mal der String von oben mit dem kompletten Datei Namen.
Zurückgegeben wird die Länge des Geschriebenen.
Dann kommt meine Funktion OpenLogFile mit einem entsprechenden flag für Lese- oder Schreibzugriff. Geöffent wird die Datei, wie schon gesagt, mitm_logFile[m_iFileId]->pFileOut->open(m_logFile[m_iFileId]->szCompFileName,ios_base::binary );und das bedeutet soviel wie
pWofStream->open(TEXT("fileName"),ios_base::binary );Und danach schreib ich dann einfach nur noch in die Datei.
Das Ergebnis ist das gleiche. Nämlich, \n oder \r wird igrnoriert, \t jedoch nicht. \n und \r wird mit einem Recheck ersetzt, so als ob das Zeichen nicht im Zeichensatz vorhanden wäre.
Was kann ich da machen?
Gruß
Alex
-
Hallo nochmal.
Ich habs jetzt. Das
ios_base::binarymuss weg. Dann geht es.
Danke nochmal und Gruß
Alex