L'application My Rails3 analyse les fichiers CSV téléchargés par l'utilisateur.
Comme on peut s'y attendre, les utilisateurs téléchargent des fichiers séparés par des virgules et séparés par des virgules.
Je veux soutenir les deux.FasterCSV: plusieurs séparateurs
Mon code:
input = CSV.read(uploaded_io.tempfile, { encoding: "UTF-8", :col_sep => "\t"})
QUESTION: Comment changer pour soutenir des virgules aussi?
La doc de FasterCSV décrit col_sep comme The String placed between each field.
alors :col_sep => ",\t"
ne fonctionnera pas.
Remarque: Toutes les données à l'intérieur sont des entiers ou des identifiants, donc la probabilité que quelqu'un utilise \t
ou ,
dans le contenu (pas un délimiteur) est zéro. Donc, l'utilisation des deux différents délimiteurs dans le même fichier n'est pas quelque chose que je veux expressément empêcher.
Voir la note que j'ajouté: les problèmes que vous évoquez sont compréhensibles, mais ne sont pas applicables ici. –
OK, compris .. cela signifie que la solution 2 devrait fonctionner correctement .. correct?:) – Tilo
+1 Oui, c'est une solution valable, merci! Avant d'accepter je vais attendre un jour ou deux, peut-être quelqu'un connaît une option FasterCSV oubliée qui le fait encore plus élégamment :-) –