Import data fichier txt avec nbr champs variables par ligne
hakari
Messages postés3Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention19 janvier 2004
-
19 janv. 2004 à 16:20
cs_bastoun
Messages postés164Date d'inscriptiondimanche 1 octobre 2000StatutMembreDernière intervention23 mars 2007
-
21 janv. 2004 à 13:36
Bonjour,
Je cherche comment je pourrais à l'aide de CF 5.0 extraire tous les champs d'un enregistrement contenu dans un fichier texte vers un tableau, sachant que chaque ligne d'enregistrement peut contenir un nombre variable de champs :
Je parviens à lire le fichier
<cffile action="READ" file="#expandPath('.')#\\T102.TXT" variable="Message">
<cfoutput>#Message#</cfoutput>
à extraire chaque champ
<cfloop list="#Message#" index="x" delimiters="#chr(44)##chr(13)#"> mais je n'arrive pas gérer le changement de ligne dans mon tableau.
Je voudrais ensuite pouvoir créer deux tables, la table principale avec les données fixes et une table avec les données variables (nom_referent et tel_referent) que je lierai .
Avez-vous déjà été confronté à ce type de problème, avez vous une solution ?
Merci pour votre réponse.
Hakari 8-)
A voir également:
Import data fichier txt avec nbr champs variables par ligne
Mais bon... je te le déconseille si ton fichier fait quelques Mo.. tu risque de voir ton script mouliner pal mal, le temps qu'il traite le fichier.
Si je me souviens bien (ça c'est pas sur...), tu peux utiliser les drivers Merant texte ou csv(normalement livré avec CF5) pour lire ton fichier en tant que table ou DB(ça devrait te faire gagner pas mal de temps en cas de gros fichier). Si ta première ligne contient la liste des différents champs, tu ne devrais pas avoir le moindre problème, même si chaque ligne ne possède pas le nombre de colonnes escomptés (je sais que je l'avais fait, mais je sais plus si c'est en utilisant un Driver Merant ou Microsoft ou autre...)
Après tu n'as plus qu'à requeter dessus.
cs_bastoun
Messages postés164Date d'inscriptiondimanche 1 octobre 2000StatutMembreDernière intervention23 mars 20071 21 janv. 2004 à 13:34
Pour la deuxième partie, vois si ton sgbd accepte les insertions multiples, ie quelque chose du genre:
insert into tblReferent(nom_referent,tel_referent)
values ('nom1','tel1'),('nom2','tel2'),('nom3','tel3'),.......
à ce moment là, une boucle bien pensée sur les éléments 5 et plus te permettra de le faire à la volée dans ton script (en insérant des parenthèses et en insérant la chaine générée dans une requete...)
M'enfin.. ce que je te donne n'est pas complet.. c'est juste une base, après faut que tu bosses un peu !!! ;-)