2010-11-12 9 views
0

Je veux lire dans une liste d'informations à partir d'une URL spécifiée qui sera éventuellement mis dans une base de données. Je veux utiliser un tableau 2D pour simuler les lignes et les colonnes de la base de données. Comment pourrais-je accomplir cela avec la fusion à froid?Lire dans le fichier délimité à la liste

exemple de fichier:

blah|stuff|123123 
wurd|noise|123121 

Répondre

3

Il y a un certain nombre d'options en fonction de l'application. Quelques exemples:

1) Traiter le contenu comme une série de listes, avec des lignes délimitées par de nouvelles lignes et colonnes par un "|". Puis loop à travers les listes et ajouter les données à un tableau ou l'insérer dans une base de données.

... 
<cfset rows = []> 
<cfloop list="#content#" delimiters="#chr(13)##chr(10)#" index="data"> 
    <cfset arrayAppend(rows, listToArray(data, "|", true))> 
</cfloop> 

2) Une autre option est cfhttp, qui peut convertir bien formés fichiers directement dans un objet de requête. Il a quelques limitations, mais fonctionne dans de nombreux cas.

<cfhttp url="http://www.somesite.com/pageThatGeneratesFile.cfm" 
    firstRowAsHeaders="false" 
    delimiter="|" 
    name="queryResult" /> 

3) La plupart des bases de données fournissent des outils pour importer des fichiers texte. Par exemple MS SQL fournit BULK INSERT

BULK INSERT TableName 
FROM 'c:\yourFile.txt' 
WITH 
(
    FIELDTERMINATOR ='|', 
    ROWTERMINATOR = '\n' 
) 
+0

merci! Je veux bien essayer – tylercomp

1

Comme logique (4) pour la réponse de Leigh: charger des données dans MySQL.

LOAD DATA LOCAL INFILE 'c:\youfile.txt' 
INTO TABLE TableName 
FIELDS TERMINATED BY '|' 
LINES TERMINATED BY '\n' 
(col1, col2, col3) 

Plus d'options dans manual.