Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Erstellung einer CSV-Datei - Fehler
Mic81
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

Erstellung einer CSV-Datei - Fehler

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
xxMUROxx
myCSharp.de - Member

Avatar #avatar-3236.jpg


Dabei seit:
Beiträge: 1.552
Herkunft: Südtirol/Italien

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5.655
Herkunft: Leipzig

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Mic81,
Zitat
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
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2.207
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Hallo Mic81,

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

Gruss

Coffeebean
private Nachricht | Beiträge des Benutzers
Mic81
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

@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.
private Nachricht | Beiträge des Benutzers
xxMUROxx
myCSharp.de - Member

Avatar #avatar-3236.jpg


Dabei seit:
Beiträge: 1.552
Herkunft: Südtirol/Italien

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Mic81,

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

herbivore
private Nachricht | Beiträge des Benutzers