Fichier CSV, Champs vide donc double ;

MaitreYoda22 Messages postés 4 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 28 janvier 2009 - 15 janv. 2009 à 15:47
MaitreYoda22 Messages postés 4 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 28 janvier 2009 - 27 janv. 2009 à 14:36
Bonjour,

Je suis actuellement sur un projet ColdFusion, J'ai à traiter un gros fichier mensuel lignes par lignes (50k lignes environ).
J'ai donc mis en place une boucle avec un getToken :

 <cfloop list="#fichier#" delimiters='#chr(13)##chr(10)#' index="ligne">
      <cfset NumAppel = #GetToken('#ligne#',1,';')#>
      <cfset NumPoste = #GetToken('#ligne#',2,';')#>
      <cfset Compte = #GetToken('#ligne#',3,';')#>
[....]
</cfloop>

Or dans mon fichier, il arrive rarement d'avoir un numéro de poste. Donc dans le fichier c'est ainsi :

0126351649;0123;00123456789
0125361447;;00123456789;
[....]

or : "ColdFusion ignore les séparateurs entre les éléments de la liste à partir du second
lorsqu’ils se suivent." cf: Manuel de référence CFML.
Le problème est que le getToken prend cela pour une double ; qui se suit, donc il shunte le champs vide. Ainsi je me retrouve souvent avec mon numéro de compte dans ma variable NumPoste.
J'ai cherché un peu partout et en restant sur du coldfusion, je n'ai rien trouvé.

Donc voila ma question: est-il possible de ne pas shunter le champs vide ? Voir de créer un bout de code qui cherche dans le fichier (;;) et le modifie (;*;) ?

Merci pour l'aide que vous pourrez (ou non) m'apporter.

2 réponses

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
22 janv. 2009 à 11:07
Bonjour,

essaye avec ListToArray(list [, delimiters ])

<cfloop list="#fichier#" delimiters='#chr(13)##chr(10)#' index="ligne">
     <cfset myArray = ListToArray(ligne, ";")/>
      <cfset NumAppel = myArray[1] />
      <cfset NumPoste = myArray[2] />
      <cfset Compte = myArray[3] />
[....]
</cfloop>

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Mon Blog
0
MaitreYoda22 Messages postés 4 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 28 janvier 2009
27 janv. 2009 à 14:36
merci de ta réponse, mais j'ai changé de méthode et de langage. donc du coup, je ne sais pas si cela fonctionne.
0