kleines Prob mit MFC: habe ein Programm, welches eine Textdatei erstellt und möchte da auch was reinschreiben. Z.B.: myFile.Write("MP\tPR\tHA\t\LN\tKN\tZN\tZL\tRelais\n\r", 39); Leider bekomme ich es nicht mit dem Newline hin. Es schreibt im Dokument immer in die Selbe Zeile -was mach cih falsch? Danke für eure Antwort!
Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge
Hi
Hmmm ...
Öffne die Datei mal mit WordPad anstelle von Notepad (Editor), oder öffne sie mit Notepad (Editor) und klicke dann auf Format->Zeilenumbruch.
Problem immer noch vorhanden?
Gruss, d-oli
Davon kommen die Zeilenumbrüche auch nicht in die Datei, die zu langen Zeilen werden nur am rechten Fensterrand umberochen. Echte Zeilenumbrüche (mit Wagenrücklauf!) werden immer als solche angezeigt...
Ok – aber das mit WordPad funktioniert tatsächlich. Wieso ist das so? Wird sein Problem gelöst in dem er "\a" (Carriage return) verwendet anstelle von "\n" (New line)?
Dieses Problem scheint nur mit bei Windows aufzutreten. Erzeuge ich mit einem C-Programm unter Linux einen Text-Datei mit "New line", kann ich die mit jedem x beliebigen Editor offnen und "New line" wird als neue Zeile interpretiert. Kopiere ich diese Datei auf ein Windowssystem brauche ich z.B. Word oder WordPad um "New line" als neue Zeile interpretiert zu kriegen. Er scheint dasselbe Problem zu haben mit MFC erzeugten Textdateien. Woran liegt das?
Ups - natürlich "\r" (Carriage return) nicht "\a" ...;-)
Wordpad geht hin und macht eigenmächtig aus LF(unix standard ascii 10) CRLF(win standard ascii 13,10). Ob das auch mit dem MAC standard CR (ascii 13) funktioniert habe ich noch nicht probiert, da ich bisher noch nie plaintext von einem MAC bekam oder gar editieren musste.
mr.escape
Carriage Return="CR"='\r'=ascii-13
Line Feed="LF"='\n'=ascii-10
Versuch's doch mal mit "\r\n" statt "\n\r", soll wunder wirken.
mr.escape