读入分隔文件列表

时间:2010-11-12 00:09:53

标签: coldfusion

我想读入一个最终将被放入数据库的指定网址的信息列表。我想使用2d数组来模拟数据库的行和列。我如何通过冷聚变实现这一目标?

示例文件:

blah|stuff|123123
wurd|noise|123121

2 个答案:

答案 0 :(得分:3)

根据应用程序的不同,有许多选项。一些例子是:

1)将内容视为一系列列表,其中行由新行和列以“|”分隔。然后通过列表loop并将数据附加到数组或将其插入数据库。

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

2)另一个选项是cfhttp,它可以将格式良好的文件直接转换为查询对象。它有一些局限性,但在许多情况下都有效。

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

3)大多数数据库都提供了导入文本文件的工具。例如,MS SQL提供BULK INSERT

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

答案 1 :(得分:1)

作为Leigh答案的逻辑(4):在MySQL中加载数据。

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

manual中的更多选项。