Zeilenumbrüche beim Einlesen von Dateien
-
Hallo zusammen,
ich habe mehrere hundert Datei in einem Format ".rep", die ich einlesen möchte (lassen sich mit standard-Textleseprogrammen öffnen: Notepad, Wordpad).
Dabei habe ich jetzt das Problem, dass die Zeilenumbrüche nicht richtig konvertiert werden. Also keine Zeilenumbrüche vorhanden sind (ich arbeite unter Windows).
Versuche ich jetzt also mit einem C++-Programm und istream::eof()-while-Schleife einzelne Zeilen einzulesen, liefert das Debuggen nur "" für den eingelesenen stream, obwohl die Datei nicht leer ist.Muss ich erst die files konvertieren, damit ich sie mit C++ richtig einlesen kann?

Öffne ich das Dokument einmal mit Wordopad anstatt Notepad und speichere, werden die newlines richtig erkannt. Dann funktioniert auch das Einlesen. Ich wollte nur eigentlich nicht alle Dateien (wie gesagt mehrere hundert) einmal mit Wordpad öffnen und speichern müssen
.
Kann mir jemand hierbei helfen?Gruß
6H05T
-
Würde es wohl reichen Wordpad anstatt Notepad als Standard-Programm für die rep-Files zu setzen?
-
Unix-Zeilenenden, die von Notepad nicht richtig erkannt werden und im Non-Binary-Mode auch mit C++ Schwierigkeiten machen bei getline und Konsorten?
Einfach mal man: unix2dos(1) drueberlaufen lassen.
-
nman schrieb:
Einfach mal man: unix2dos(1) drueberlaufen lassen.
OK, hatte ich auch schon gefunden, werde dann mal eine windows-version installieren und es ausprobieren. Melde mich dann nochmal, ob es geklappt hat.
-
Notepad hat solche Probleme öfters, der Editor meines Vertrauens unter Windows ist Notepad++

-
Cyres schrieb:
Notepad hat solche Probleme öfters, der Editor meines Vertrauens unter Windows ist Notepad++

Nur leider hilft der andere Editor beim Einlesen der Datei mittels C++-Programm nicht weiter. Ich kann ja auch Wordpad als Standardprogramm für die rep-files setzen.
nman schrieb:
Unix-Zeilenenden, die von Notepad nicht richtig erkannt werden und im Non-Binary-Mode auch mit C++ Schwierigkeiten machen bei getline und Konsorten?
Einfach mal man: unix2dos(1) drueberlaufen lassen.
Gibt es irgendwo eine bedienungsfreundliche Version für Windows XP?
Schonmal vielen Dank für die Antworten

-
Meine Idee wäre z.B. ein eigenes kurzes Programm zu schreiben, das die Dateien mit z.B. Wordpad öffnet, speichert und wieder schließt.
Hat jemand hierzu eine Idee:
Meine erste wäre gewesen die Dateien mit ShellExecute zu öffnen, aber dann ...
Kann ich das geöffnete Fenster dann noch kontrollieren?Alternativ könnte man eine Art unix2dos selber programmieren: In die umgekehrte Richtung wird das für VS-Dateien hier http://support.microsoft.com/kb/268901/de vorgemacht. Bzw. eine konkrete Lösung findet man hier http://www.efgh.com/software/unix2dos.htm.
Weiter wäre noch eine Kombination möglich: Mit ShellExecute das obige unix2dos.exe aufrufen mit allen Eingabedateien.
Problem hierbei ist (wie grundsätzlich in der Anwendung auf meine report-files):
Ich habe in etwa folgende DateiRELATIVE PART LOTSTARTS LOTCOMPS CYCLEAVG XTHEORAVG NETONTIME ONTIME% WIPLOTAVG ~Report time: 04/18/2001 00:00:00 : Y rwk_1 0 0 0.00 Y part_1 199 15 80:32:14 2.02 4191:56:31 100.00 137.33 Y part_2 150 16 109:48:21 2.09 4003:06:30 100.00 125.31 ~Report time: 04/25/2001 00:00:00 : Y rwk_1 0 0 0.00 Y part_1 199 25 136:28:51 2.12 5587:58:52 100.00 157.23 Y part_2 172 43 199:56:00 2.26 6882:52:11 100.00 129.52 ~Report time: 05/02/2001 00:00:00 : Y rwk_1 0 0 0.00 Y part_1 201 63 327:28:27 2.66 2049:07:18 39.68 159.41 Y part_2 209 61 261:44:28 2.45 5993:47:40 80.33 133.11 ~Report time: 05/09/2001 00:00:00 : Y rwk_1 0 0 0.00 Y part_1 209 126 452:44:49 2.59 -11686:07:41 19.84 148.57 Y part_2 241 87 353:49:17 2.60 537:32:27 56.32 137.45 ~Report time: 05/16/2001 00:00:00 : Y rwk_1 0 0 0.00 Y part_1 246 155 497:19:12 2.66 -21284:36:41 16.13 137.20 Y part_2 261 95 389:19:36 2.67 -2786:01:34 51.58 142.37usw., diese wird aber wie folgt angezeigt
RELATIVE PART LOTSTARTS LOTCOMPS CYCLEAVG XTHEORAVG NETONTIME ONTIME% WIPLOTAVG~Report time: 04/18/2001 00:00:00 : Y rwk_1 0 0 0.00Y part_1 199 15 80:32:14 2.02 4191:56:31 100.00 137.33Y part_2 150 16 109:48:21 2.09 4003:06:30 100.00 125.31~Report time: 04/25/2001 00:00:00 : Y rwk_1 0 0 0.00Y part_1 199 25 136:28:51 2.12 5587:58:52 100.00 157.23Y part_2 172 43 199:56:00 2.26 6882:52:11 100.00 129.52~Report time: 05/02/2001 00:00:00 : Y rwk_1 0 0 0.00Y part_1 201 63 327:28:27 2.66 2049:07:18 39.68 159.41Y part_2 209 61 261:44:28 2.45 5993:47:40 80.33 133.11~Report time: 05/09/2001 00:00:00 : Y rwk_1 0 0 0.00Y part_1 209 126 452:44:49 2.59 -11686:07:41 19.84 148.57Y part_2 241 87 353:49:17 2.60 537:32:27 56.32 137.45~Report time: 05/16/2001 00:00:00 : Y rwk_1 0 0 0.00Y part_1 246 155 497:19:12 2.66 -21284:36:41 16.13 137.20Y part_2 261 95 389:19:36 2.67 -2786:01:34 51.58 142.37usw.. Wende ich jetzt unix2dos an, erhalte ich:
RELATIVE PART LOTSTARTS LOTCOMPS CYCLEAVG XTHEORAVG NETONTIME ONTIME% WIPLOTAVG縀刀攀瀀漀爀琀 琀椀洀攀㨀 㐀⼀㠀⼀㈀ 㨀 㨀 㨀 ऀऀऀऀऀऀऀऀഀ Y rwk_1 0 0 0.00夀ऀ瀀愀爀琀开ऀ㤀㤀ऀ㔀ऀ㠀 㨀㌀㈀㨀㐀ऀ㈀⸀ ㈀ऀ㐀㤀㨀㔀㘀㨀㌀ऀ ⸀ ऀ㌀㜀⸀㌀㌀ഀ Y part_2 150 16 109:48:21 2.09 4003:06:30 100.00 125.31縀刀攀瀀漀爀琀 琀椀洀攀㨀 㐀⼀㈀㔀⼀㈀ 㨀 㨀 㨀 ऀऀऀऀऀऀऀऀഀ Y rwk_1 0 0 0.00夀ऀ瀀愀爀琀开ऀ㤀㤀ऀ㈀㔀ऀ㌀㘀㨀㈀㠀㨀㔀ऀ㈀⸀㈀ऀ㔀㔀㠀㜀㨀㔀㠀㨀㔀㈀ऀ ⸀ ऀ㔀㜀⸀㈀㌀ഀ Y part_2 172 43 199:56:00 2.26 6882:52:11 100.00 129.52縀刀攀瀀漀爀琀 琀椀洀攀㨀 㔀⼀ ㈀⼀㈀ 㨀 㨀 㨀 ऀऀऀऀऀऀऀऀഀ
Vertue ich mich damit, dass die report-Datei im "unix-Format" ist?