Go: Kodierung/CSV: Datensätze mit \r als Datensatztrennzeichen falsch parsen

Erstellt am 29. Apr. 2014  ·  3Kommentare  ·  Quelle: golang/go

Bevor Sie einen Fehler melden, prüfen Sie bitte, ob dieser seit dem
 neueste Erscheinung. Durchsuchen Sie den Issue Tracker und überprüfen Sie, ob Sie den
 neueste Go-Version:

 Führen Sie "Go-Version" aus und vergleichen Sie mit
 http://golang.org/doc/devel/release.html Wenn eine neuere Version von Go existiert,
 installieren Sie es und wiederholen Sie das, was Sie getan haben, um das Problem zu reproduzieren.

 Vielen Dank.

 Was druckt die Go-Version?
 go version go1.2.1 darwin/amd64

 (der Fehler liegt wahrscheinlich in anderen Versionen vor, da src/pkg/encoding/csv/reader.go
 explizit nicht 
 Handle und einzelnes \r (Zeilen 180-193)


 Welche Schritte reproduzieren das Problem?
 Fügen Sie nach Möglichkeit einen Link zu einem Programm auf play.golang.org hinzu.

 http://play.golang.org/p/dr_cz65h_u

 (Das Ändern des Trennzeichens in \n behebt das Problem

 1. Lesen Sie eine CSV-Datei mit \r als Datensatztrennzeichen


 Was ist passiert?
 http://play.golang.org/p/dr_cz65h_u

 Datensatz 0, []string{"Eins", "Zwei", "Drei\rVier",
 "Fünf", "Sechs\rSieben", "Acht", "Neun"}


 Was hätte stattdessen passieren sollen?

 Datensatz 0, []string{"Eins", "Zwei", "Drei"}
 Datensatz 1, []string{"Vier", "Fünf", "Sechs"}
 Datensatz 2, []string{"Sieben", "Acht", "Neun"}


 Bitte geben Sie unten weitere Informationen an.
FrozenDueToAge Unfortunate

Hilfreichster Kommentar

aarrggrggrgrgrg! Ich bin mir sicher, dass ich hier nur in den Wind schreie, aber die offensichtliche Lösung wäre, dem Reader ein Feld hinzuzufügen, um die Art des erwarteten Zeilenendes anzugeben, oder sogar eine Option hinzuzufügen, um mit beiden umzugehen. .csvs beider Typen gibt es seit 10 Jahren. Es gibt viele, viele Möglichkeiten, damit umzugehen, ohne die Abwärtskompatibilität zu beeinträchtigen

Alle 3 Kommentare

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen