Laden...

Erstellung einer CSV-Datei - Fehler

Erstellt von Mic81 vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.299 Views
M
Mic81 Themenstarter:in
2 Beiträge seit 2013
vor 10 Jahren
Erstellung einer CSV-Datei - Fehler

Hallo zusammen,

ich habe ein ganz merkwürdiges Problem.

Wir arbeiten mit DHL EasyLog, womit wir Label für Paketaufkleber drucken. Die Daten der Label werden mittels einer *.csv-Datei an EasyLog übergeben. Die Datei wird von unserem Wawi-System erstellt.

Nun sind wir gezwungen an den Daten etwas zu verändern, bevor diese in EasyLog importiert werden. Dazu habe ich ein kleines Programm geschrieben, welches die *.csv-Datei ausliest, die entsprechenden Änderungen vornimmt und dann eine neue *.csv-Datei erstellt, die dann von EasyLog für die Erstellung der Label genutzt wird.

Problem ist nun folgendes:

Eine Zeile in der *.csv-Datei entspricht einem Datensatz und ergibt beim Druck ein Label. Bei der von mir erstellten Datei wird von EasyLog die letzte oder manchmal auch die letzten beiden Dateien einfach ignoriert. Das Format und alles andere habe ich überprüft. Das ist korrekt.
Merkwürdigerweise klappt der Import in EasyLog mit der von mir erstellten Datei, wenn man diese einmal im Textpad, Dreamweaver oder sonst wo öffnet, einmal speichert und wieder schließt.

Kennt jemand dazu vielleicht eine Lösung oder hatte man ein ähnliches Problem?

In wie fern unterscheidet sich das Speichern der Datei in einem Texteditor zum Speichern der Datei über den StreamWriter?

Schon einmal vielen Dank im Voraus...

Grüße, Michael

1.552 Beiträge seit 2010
vor 10 Jahren

Hallo Mic81,

mit "letzten beiden Daten" nehme ich an du meinst die letzten beiden Zeilen der originalen csv Datei.
Wie schließt du den StreamWriter, kann sein, dass du den falsch schließt und er die letzten Werte nicht in die Datei schreibt?

Gruß,
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

5.657 Beiträge seit 2006
vor 10 Jahren

Hi Mic81,

klingt für mich ein bißchen, als würdest du falsche Zeilentrenner verwenden, die erst im Texteditor wieder hergestellt werden...

Christian

Weeks of programming can save you hours of planning

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo Mic81,

Merkwürdigerweise klappt der Import in EasyLog mit der von mir erstellten Datei, wenn man diese einmal im Textpad, Dreamweaver oder sonst wo öffnet, einmal speichert und wieder schließt.

dann schau dir doch an, welcher Unterschied dadurch entsteht (z.B. in einen Hexeditor). Dann müssen wir nicht spekulieren.

herbivore

2.207 Beiträge seit 2011
vor 10 Jahren

Hallo Mic81,

eventuell reicht auch Notepad++ mit der Option "Alle Zeichen anzeigen". Dann siehst du, welche Zeichen sich noch verstecken.

Gruss

Coffeebean

M
Mic81 Themenstarter:in
2 Beiträge seit 2013
vor 10 Jahren

@Coffeebean: Hatte ich gemacht...

@herbivore: Habe mit Windiff die Dateien vor und nach dem Speichern im Texteditor verglichen. Die waren identisch.

@MrSparkle: Dachte ich auch... aber nach dem Vergleich über WinDiff war ich mir sicher, dass die korrekt sind.

Mittlerweile geht es. Weiss nicht warum. Die Änderung, die ich gemacht habe war:

Vorher habe ich mit dem StreamReader die Ursprungsdatei geöffnet, Zeile für Zeile eingelesen... geändert und das Ergebnis in einen String geschrieben. Nachdem Durchlauf der kompletten Datei wurde das StreamWriter Objekt mit der Zieldatei erstellt und der String übergeben.

Nun öffne ich die Quelldatei mit dem StreamReader und unmittelbar danach die Zieldatei mit dem StreamWriter und schreibe nun quasi Zeile für Zeile direkt, anstatt erstmal alle Daten in einem String zu sammeln.

Komischerweise klappt das, obwohl die daraus resultierende Datei identisch mit der Datei ist, die nach der alten Schreibweise erstellt wurde.

1.552 Beiträge seit 2010
vor 10 Jahren

Wobei wir denke ich mir bei meinen genannten Problem sind. Wie sieht dein Code fürs Schreiben der Datei aus?

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo Mic81,

du hättest die Dateien wie vorgeschlagen mal binär vergleichen sollen.

herbivore