Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1430 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [RESOLU] Parsing de CSV avec Text::CSV_XC ou à l'arrache

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Parsing de CSV avec Text::CSV_XC ou à l'arrache

n°1821500
yellu
Posté le 03-12-2008 à 17:09:24  profilanswer
 

Bonjour,
 
J'ai besoin pour une application d'un script qui va parser un fichier de données CSV.
 
Ce CSV est formaté de la manière suivante : tabulation "\t" comme séparateur de champs, saut de ligne "\n" comme séparateur d'enregistrement.
Certain champs sont complexes et peuvent contenir du HTML et donc des sauts de lignes.
 
Je pensais qu'en spécifiant le caractère de quote " le parseur comprendrait que si un saut de ligne etait compris dans un interval de quotes alors il ne s'agissait pas du caractère de fin d'enregistrement mais d'un saut de ligne de la valeur en cours, mais il n'en est rien...
 
Avez vous déjà rencontré ce problème et si oui auriez vous trouvé une solution ?
 
Merci d'avance.
Yellu


Message édité par yellu le 03-12-2008 à 18:07:20
mood
Publicité
Posté le 03-12-2008 à 17:09:24  profilanswer
 

n°1821513
superbob56
Posté le 03-12-2008 à 17:30:09  profilanswer
 

Quel langage tu utilise pour parser ton fichier CSV ?
Si c'est du script, quel interpréteur ?


---------------
By bob.
n°1821522
yellu
Posté le 03-12-2008 à 17:39:30  profilanswer
 

J'utilise un script Perl avec le module Text::CSV_XS

n°1821551
superbob56
Posté le 03-12-2008 à 18:01:26  profilanswer
 

As-tu essayé l'attribut verbatim de CSV_XS ?
 

Citation :

verbatim
The basic thought behind this is to tell the parser that the normally special characters newline (NL) and Carriage Return (CR) will not be special when this flag is set, and be dealt with as being ordinary binary characters. This will ease working with data with embedded newlines.
 
http://search.cpan.org/~hmbrand/Te [...] ew_(%attr)

;)
 
Par exemple :

Code :
  1. $csv = Text::CSV_XS->new ({
  2.      quote_char          => '"',
  3.      escape_char         => '"',
  4.      sep_char            => '\t',
  5.      eol                 => '\n',
  6.      always_quote        => 0,
  7.      binary              => 0,
  8.      keep_meta_info      => 0,
  9.      allow_loose_quotes  => 0,
  10.      allow_loose_escapes => 0,
  11.      allow_whitespace    => 0,
  12.      blank_is_undef      => 0,
  13.      verbatim            => 1,
  14.      });


---------------
By bob.
n°1821560
yellu
Posté le 03-12-2008 à 18:06:59  profilanswer
 

Merci mais cela ne fonctionne pas avec verbatim en revanche j'ai réussi avec binary => 1.
 
Merci à toi :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [RESOLU] Parsing de CSV avec Text::CSV_XC ou à l'arrache

 

Sujets relatifs
[résolu] Runtime error sur une assignation de SUMIF[Résolu] Vous avez dit Memcpy() ?!
[JS ] Conflit ***.js avec prototype.jsCompilation MySQL avec C++ Builder 2006 [Resolu]
[RÉSOLU]problème de Requète MySQLParsing et modification fichier xml
[résolu] Remplacement d'1 caractère dans chaque nom de fic d'1 dossier[résolu]Maieuh pourquoi ça marche pas ?
[résolu] [vbs] Problème pour effacer des fichiers[Résolu] Impossible d'exécuter les migrations MySQL
Plus de sujets relatifs à : [RESOLU] Parsing de CSV avec Text::CSV_XC ou à l'arrache


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR