WriteFile Problem
-
Hallo zusammen,
ich versuche im meinem Program (MASM32) ein String in ein Datei (C:\test.txt) zu schreiben. Da mir im masm32 keine Funktion fopen, fputs, fclose zu verfügung
steht, hab ich WriteFile beschäftigt.Alles klappt auch ganz gut.
Nun genügte mir im C++ einfach fputs("\n\r", stream) aufzurufen um in die neue Zeile zu gehen, mit masm geht es aber irgendwie nicht
so sieht der Code aus:
.data CR_LF db 10,13,0 .code invoke WriteFile, hFile, addr CR_LF, 2, addr dwBytesWritten, 0
Es ist auch so, das die Zeichen 10 und 13 werden zwar in die Datei geschrieben,
es wird aber nicht in die neue Zeile gegangenUnd wenn ich die Datei mit Notepad öffne, dann sehe ich einfach zwei Leerzeichen, und dann wird die Zeile einfach fortgesetzt.
Was mache ich hier Falsch????
Danke!
-
Hi.
Unter Windows wird eine neue Zeile in Textdateien durch die Kombination 13, 10 eingeleitet, und nur durch diese.
Auf alles andere reagiert notepad alergisch.hth.
-
Nobuo T schrieb:
Hi.
Unter Windows wird eine neue Zeile in Textdateien durch die Kombination 13, 10 eingeleitet, und nur durch diese.
Auf alles andere reagiert notepad alergisch.hth.
aber komischerweise reagiert d. Notepad auf das 13,10 auch alergisch
Klar hab ich das auch probiert
Es ist also egal ob ich 10,13 oder 13,10 rein schreibe, es wird nicht in die neue Zeile gegangen, sie (die Zeile) wird fortgesetztDanke, aber das hilft mir leider nicht weiter
NEED HELP
-
Hallo Leute,
hat sich erledigt
Aber warum ist es so?????Also in meinem Program, sprich im DATA Segment ist eine Haufe von "Variablen" deklariert, darunter ist auch CR_LF db 13,10,0
nun wenn ich CR_LF ganz unten deklariere, etwa so:
.data hInstance dd 0 szClassName db "blablabla",0 hMutex dd ? hLog dd ? hDll dd ? szBla-Bla db MAX_PATH DUP(0) szBla-Bla2 db MAX_PATH DUP(0) szBla-bla3 db MAX_PATH DUP(0) szbla-bla4 db MAX_PATH DUP(0) noch viele viele Variablen CR_LF db 13,10,0 ;<<<<<<<<<<<<<<<<<<<< FAST/GANZ UNTEN .code ; << Code Segment weiter
Dann funktioniert es NICHT, also es werden zwei Leerzeichen in Datei geschrieben, und es wird nicht in die neue Zeile gegangen
Aber wenn ich die CR_LF ganz oben/ in die Mitte deklariere, erst dann funktioniert es. Also erst dann wird wirklich in die neue Zeile gegangen
etwa so:
.data CR_LF db 13,10,0 noch viele viele Variablen .code ; << Code Segment
Kann mir hier einer sagen warum es so ist???????????
Danke!
-
Dann wirst du es dir wohl irgendwo überschreiben. Schau mal im Debugger nach, ob CR_LF zum Zeitpunkt des WriteFile noch 13,10 enthält. Vermutlich nicht!