Go: encoding/csv : analyse incorrecte des enregistrements avec \r comme séparateur d'enregistrements

Créé le 29 avr. 2014  ·  3Commentaires  ·  Source: golang/go

Avant de signaler un bogue, veuillez vérifier s'il a été corrigé depuis le
 dernière version. Recherchez le suivi des problèmes et vérifiez que vous exécutez le
 dernière version de Go :

 Exécutez "go version" et comparez avec
 http://golang.org/doc/devel/release.html Si une version plus récente de Go existe,
 installez-le et réessayez ce que vous avez fait pour reproduire le problème.

 Merci.

 Qu'est-ce que 'go version' imprime ?
 go version go1.2.1 darwin/amd64

 (le bug est probablement dans d'autres versions, étant donné que src/pkg/encoding/csv/reader.go
 explicitement ne 
 poignée et simple \r (lignes 180-193)


 Quelles étapes reproduisent le problème ?
 Si possible, incluez un lien vers un programme sur play.golang.org.

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

 (changer le délimiteur en \n résout le problème

 1. Lire un fichier CSV avec \r comme délimiteur d'enregistrement


 Que s'est-il passé?
 http://play.golang.org/p/dr_cz65h_u

 Enregistrement 0, []string{"Un", "Deux", "Trois\rQuatre",
 "Cinq", "Six\rSept", "Huit", "Neuf"}


 Qu'est-ce qui aurait dû se passer à la place ?

 Enregistrement 0, []string{"Un", "Deux", "Trois"}
 Enregistrement 1, []chaîne{"Quatre", "Cinq", "Six"}
 Enregistrement 2, []string{"Sept", "Huit", "Neuf"}


 Veuillez fournir toute information supplémentaire ci-dessous.
FrozenDueToAge Unfortunate

Commentaire le plus utile

aarrggrggrgrgrg ! Je suis sûr que je ne fais que crier dans le vent ici, mais la solution évidente serait d'ajouter un champ au lecteur pour indiquer le type de fin de ligne attendu, ou même d'ajouter une option pour traiter l'un ou l'autre. Les .csv des deux types existent depuis des dizaines d'années. Il existe de nombreuses façons de gérer cela sans rompre la compatibilité descendante

Tous les 3 commentaires

Cette page vous a été utile?
0 / 5 - 0 notes