我正在使用从本·纳德尔获得的一些代码
我添加了一些代码来使用我的.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文件。请告诉我,如果我在正确的轨道上,或者应该做一些不同的事情。
发布于 2014-11-20 13:14:06
csvToArray返回一个2D数组,可以在Ben的文章截图中清楚地看到,他的注释“我们将创建一个数组数组,其中每个嵌套数组代表CSV数据文件中的一行”。
如果要访问每个单独的值,则需要一个内部循环。
<cfloop array="#result#" index="i">
<cfloop array="#i#" index="j">
<cfoutput>#j#</cfoutput>
</cfloop>
</cfloop>发布于 2014-11-20 13:10:48
那么,i的价值是什么?你查过了吗?如果你说了你就不会这么说了。
它很可能是一个结构或其他复杂的数据类型,不能简单地输出(错误就是这么说的)。
使用<cfdump>检查i的值,然后根据它包含的内容适当地处理它。在没有你提供信息的情况下,要说出更多的话是很棘手的。
https://stackoverflow.com/questions/27038978
复制相似问题