Zeilenumbrüche wurden aus dem mit Notepad gespeicherten Dokument gelöscht

Zeilenumbrüche wurden aus dem mit Notepad gespeicherten Dokument gelöscht

Es tritt eine sehr merkwürdige Situation auf:

(Unter Windows 7 Enterprise, SP1, 64 Bit)

Eine GUI, die ich bei der Arbeit verwende (speziell für diesen Zweck entwickelt und für die Ausführung in einer Windows-Umgebung vorgesehen), generiert .dat-Dateien. Ich muss eine davon leicht bearbeiten, bevor ich sie verwenden kann. Ich öffne sie im normalen Notepad, nehme meine Änderungen vor und speichere sie (alles sieht gut aus). Wenn ich sie mit einem beliebigen Programm (Notepad, Notepad++ usw.) erneut ÖFFNE, werden alle „neuen Zeilen“/„Eingaben“/Zeilenumbrüche entfernt – alles erscheint wie eine einzige lange Zeile durcheinandergewürfelt.

Wenn ich es einfach in Notepad öffne und schließe, ohne es zu speichern, ändert sich nichts und die Zeilenumbrüche sind dort, wo sie sein sollten. Das Öffnen des Dokuments in Notepad++ oder einem anderen Programm und das Speichern hat keine Auswirkungen auf die Zeilenumbrüche. Das Kopieren des Inhalts in Notepad++ und zurück in Notepad behebt dieses Problem ebenfalls – nachfolgendes Speichern in Notepad führt nicht zu Zeilenumbrüchen.

Was das Problem noch schlimmer macht, ist die Tatsache, dass dieses Verhalten nicht auf ALLE von meiner GUI erstellten DAT-Dateien zutrifft. Nur auf einige davon.

Irgendwelche guten Ideen, was passiert und wie man es beheben kann?

Wenn die Lösung dieses Problems darin besteht, die Art und Weise zu ändern, wie meine GUI die Dateien erstellt, ist das eine akzeptable Antwort, da ich für die GUI einen Fehlerbericht einreichen kann.

Allerdings ... scheint es unwahrscheinlich, da mein Chef dieses Problem meines Erachtens noch nie zuvor hatte und er dieselbe Version der GUI und des Editors verwendet, um geringfügige Änderungen an den Dateien vorzunehmen. Bei mir ist dies auch erst kürzlich und inkonsistent aufgetreten: Eine Datei, bei der dieses Problem zuvor auftrat, verliert ihre Zeilenumbrüche NICHT, wenn sie in dieser aktuellen Iteration von Dateien mit dem Editor gespeichert wird.

Edit: weitere Informationen: Ich habe die Datei an meinen Chef geschickt und ihn gebeten, sie mit Notepad auf seinem Computer zu öffnen und zu speichern, und es ist nichts Komisches passiert – alle Zeilenumbrüche blieben nach dem Speichern, Schließen und erneuten Öffnen bestehen. Entweder hat der Vorgang des Sendens etwas in der Datei behoben, oder es stimmt etwas mit meinem Computer nicht.

Betrachten des Hex-Werts der gespeicherten und nicht gespeicherten Dateien: Soweit ich das beurteilen kann, enthält die nicht gespeicherte Version 0D0A zwischen den Zeilen, und in der gespeicherten Version fehlen alle Vorkommen von 0D0A bis auf ein einziges Vorkommen ganz am Ende (ich frage mich, ob dies von Notepad++ hinzugefügt wurde, als die Datei geöffnet/konvertiert wurde).

Nochmals bearbeiten: die Hex-Version der „nicht gespeicherten“ Datei nach dem Herausnehmen vertraulicher Informationen:

2320504C4541534520434845434B3A20
544845524D5F43617020616E64204465
70436170206265666F72652072756E6E
696E67202121210D0D0A0D0D0A706172
616D20696E697469616C203A3D20313B
0D0D0A706172616D2054203A3D313735
32303B0D0D0A706172616D206474203A
3D20333630303B0D0D0A0D0D0A706172
616D204950505F4F524F203A3D20302E
313233343B0D0D0A706172616D205448
45524D5F4F524F203A3D20302E313233
343B0D0D0A706172616D20544845524D
5F436170203A3D2031323334353B0D0D
0A706172616D20446570436170203A3D
31323334353B0D0D0A234D572C204465
70656E6461626C652043617061636974
79206F662073747566660D0D0A090909
234E756D6265727320666F7220726566
6572656E63653A207468696E67732E0D
0D0A09090923446570656E6461626C65
204361703A2073747566660D0D0A7061
72616D20425546464552203A3D20303B
0D0D0A706172616D20636F6E76657274
203A3D20312E303B0D0D0A0D0D0A7061
72616D09525245534E504F494E545309
3A3D20353B0D0D0A706172616D095252
4553424B50093A3D0D0D0A31092D3132
33343530200D0D0A32092D3132333435
3030200D0D0A330930200D0D0A340931
32333435200D0D0A3509313233343520
0D0D0A3B0D0D0A0D0D0A706172616D09
525245534C4F5045093A3D0D0D0A3109
2D3132333435452D30350D0D0A32092D
3132333435452D30350D0D0A33092D31
32333435452D30350D0D0A3409313233
34350D0D0A3B0D0D0A0D0D0A2357696E
64792073747566660D0D0A706172616D
2057494E445F49433A3D0D0D0A706C61
63650931323334350D0D0A3B0D0D0A0D
0D0A706172616D207468696E67793A3D
0D0D0A706C6163650931323334350D0D
0A3B0D0D0A0D0D0A706172616D204F50
545F5265733A3D0D0D0A7468696E6709
300D0D0A3B0D0D0A0D0A

Dies ist der Hex-Code nach dem Speichern im Editor und erneuten Öffnen:

2320504C4541534520434845434B3A20
544845524D5F43617020616E64204465
70436170206265666F72652072756E6E
696E6720212121706172616D20696E69
7469616C203A3D20313B706172616D20
54203A3D31373532303B706172616D20
6474203A3D20333630303B706172616D
204950505F4F524F203A3D20302E3132
33343B706172616D20544845524D5F4F
524F203A3D20302E313233343B706172
616D20544845524D5F436170203A3D20
31323334353B09706172616D20446570
436170203A3D383632362E313B234D57
2C20446570656E6461626C6520436170
6163697479206F662073747566660909
09234E756D6265727320666F72207265
666572656E63653A207468696E677309
090923446570656E6461626C65204361
703A207374756666706172616D204255
46464552203A3D20303B706172616D20
636F6E76657274203A3D20312E303B70
6172616D09525245534E504F494E5453
093A3D20353B706172616D0952524553
424B50093A3D31092D31323334353020
32092D31323334353030203309302034
0931323334352035093132333435203B
706172616D09525245534C4F5045093A
3D31092D3132333435452D303532092D
3132333435452D303533092D31323334
35452D303534092D3132333435452D30
353B2357696E64792073747566667061
72616D2057494E445F49433A3D706C61
63650931323334353B706172616D2074
68696E67793A3D706C61636509313233
34353B706172616D204F50545F526573
3A3D7468696E6709303B0D0A

Antwort1

Einige Hintergrundinformationen könnten hilfreich sein. Notepad erfordert, dass eine Datei beides enthält, <CR><LF>um zu erkennen, dass es sich um ein Zeilenende handelt, und um einen Zeilenumbruch durchzuführen. Wenn eines dieser Zeichen fehlt, wird es übersprungen und alles in einer einzigen Zeile angezeigt. <CR><LF>ist die Standardzeilenumbruchsequenz auf DOS-/Windows-Rechnern, während Unix/Linux und Derivate <LF>als Zeilenumbruch verwendet werden. Die Datei, die Sie öffnen, enthält höchstwahrscheinlich nur <LF>, daher kann Notepad sie nicht richtig anzeigen.

Höchstwahrscheinlich wurden diese Dateien von einem Programm erstellt, das die Windows/DOS-Konventionen für Textformatierung nicht befolgt. Wenn dies nur unter Windows ausgeführt werden soll, ist meiner Meinung nach ein Fehlerbericht angebracht, insbesondere wenn die Dateien im Editor bearbeitet werden sollen.

In der Zwischenzeit empfehle ich, die Dateien nur in Notepad++ zu öffnen und zu bearbeiten.

Wenn Sie das Problem beheben möchten, laden Sie einen Hex-Editor herunter, um zu sehen, was am Ende einer Zeile steht. Für eine korrekte Windows-Formatierung sollte es die Hex-Codes 0d 0a enthalten. Wenn einer von beiden fehlt oder in einer anderen Reihenfolge vorliegt, führt dies zu einem Problem. Versuchen Sie dies mit einer neuen Datei, die noch nie im Editor gespeichert wurde, und einer, die gespeichert wurde.

verwandte Informationen