我正在使用我从Ben Nadel
获得的一些代码我在一些代码中添加了使用我的.csv文件
<cffile action="READ" file="C:/ColdFusion10/cfusion/wwwroot/kelly2/debitorders.csv" variable="FileContent" result="csvfileupload">
<cfset CSVArray = FileContent>
<cfdump var="#CSVArray#">
<cfsavecontent variable="csv">
csvfileupload
</cfsavecontent>
<!--- Parse the test data. --->
<cfset result = csvToArray(
csv = trim( CSVArray )
) />
<!--- Output the results. --->
<cfdump
var="#result#"
label="Array 1"
/>
当我使用
时,我想循环查看结果<cfloop array="#result#" index="i">
<cfoutput>#i#</cfoutput>
</cfloop>
我收到以下错误:
“无法将复杂对象类型转换为简单值。
表达式已请求变量或中间表达式 结果作为一个简单的价值。但是,结果无法转换为 简单的价值。简单的值是字符串,数字,布尔值和 日期/时间值。查询,数组和COM对象是其示例 复杂的价值观。“
我还想知道如何引用这些项目及其专栏,不确定我的术语是否有意义
我的最终目标是通过csv并逐行读取,根据行中的变量对数据进行排序,然后将其写入新的.txt文件。如果我走在正确的轨道上或者应该做些不同的事情,请告诉我。
答案 0 :(得分:4)
csvToArray返回一个2D数组,可以在Ben的文章截图中清楚地看到,他的评论“我们要创建 一个数组数组,其中每个嵌套数组代表一个 CSV数据文件中的行。“
如果要访问每个单独的值,则需要内部循环。
<cfloop array="#result#" index="i">
<cfloop array="#i#" index="j">
<cfoutput>#j#</cfoutput>
</cfloop>
</cfloop>
答案 1 :(得分:1)
嗯:i
的价值是多少?你检查过了吗?如果你这样做,你没有这么说。
它很可能是一个结构或其他复杂的数据类型,不能简单地输出(这就是错误所说的)。
使用<cfdump>
检查i
的值,然后根据其中包含的内容进行处理。如果没有你提供这些信息,再说些什么是很棘手的。