$csv.parse
¶
Description¶
Parse un fichier CSV et appelle une fonction de callback pour chaque enregistrement lu.
Les méthodes $csv.parse
et
$csv.nextRecord
permettent toutes les deux de
parcourir un CSV et d'effectuer un traitement pour chaque enregistrement.
Les deux méthodes varient quant à l'approche pour réaliser le
traitement.
Avec la méthode $csv.parse
, c'est Ewt qui itère sur les
enregistrements du CSV et qui invoque une fonction de callback chargée
de traiter les données.
Avec la méthode $csv.nextRecord
, c'est le script qui
itère sur les enregistrements du CSV et qui traite les données.
Le choix de l'approche appartient donc au développeur, d'autant que les performances des deux méthodes sont sensiblement identiques.
Syntaxe¶
$csv.parse( csv , callback [ , options ] )
Paramètres¶
csv
pojo-
Fichier CSV ou texte contenant le CSV.
Peut également être une référence de CSV obtenue via
$csv.load
. Attention toutefois: si le script utilise une référence de CSV, il a la responsabilité de la fermer correctement à l'aide de$csv.close
. Il est recommandé dans ce cas d'effectuer le$csv.close
dans clausefinally
. callback
function-
Fonction de callback à appeler pour chaque enregistrement lu du CSV. La fonction de callback reçoit un tableau contenant les valeurs du record ainsi que le numéro du record. La fonction de callback doit donc être déclarée ainsi:
function(data, index) { ... }
Si la fonction de callback retourne la valeur
false
, cela met fin au traitement du parseur. options
map-
Map d'options pour le chargement du CSV. Les options reconnues sont:
format
pojo / map- Format de CSV. Doit être un objet
pojo
construit au moyen de$csv.makeFormat
ou un map qui reprend les mêmes règles que celles attendues par$csv.makeFormat
charset
string- Charset des données du CSV. Si non spécifié, les données sont traitées selon le charset UTF-8.
Retour¶
Retourne true
si le parsing a pu se faire en intégralité et sans erreur,
sinon false
Exemple¶
L'exemple ci-dessous effectue le même traitement que celui donné pour la
méthode $csv.nextRecord
. Les performances de cette
variante sont sensiblement identiques à la version qui utilise
$csv.nextRecord
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
|