0

|の代わりに区切り文字を使用している csv ファイルを読み込もうとしています ,

私は使っている

<cffunction name="loadCSVfile" access="public" returntype="string"> 
    <cfargument name="filename" required="yes" default="">

    <cffile action="read" file="#filename#" variable="csvData">

    <cfreturn csvData>
</cffunction>

,これは、区切り記号であるファイルでは正常に機能しますが、 |. この機能が機能するために他に何かする必要がありますか?

これは私が関数を呼び出す方法です:

    <cfscript>
       csvloaderCFC = CreateObject("component","AlscCSVloader");
    </cfscript>


    <cfset csvfilename = DataDirectory&q_DataDirectory.name>

    <!---  backup CSV file ---->
    <cffile action= "copy" source = "#csvfilename#"  
                destination = "#DataDirectorybackup#"> 

    <!---  Load CSV data ---->
    <cfscript>
        csvData = csvloaderCFC.loadCSVfile(csvfilename);
    </cfscript>

    <cfdump var="#csvData#">

結局全然cfdump映らない

パイプ区切りサンプル

Location|patient_ID|First Name|Last Name|
111|468454|Eric |Gallegos |
111|468457|kelsey|anderson|
10|468459|Rivenda|Kaur|

カンマ区切りのサンプル

Location,patient_ID,First Name,Last Name,
111,468454,Eric ,Gallegos ,
111,468457,kelsey,anderson,
10,468459,Rivenda,Kaur,
4

1 に答える 1

0

ある種の構造体としてCSVを取得するためのCFFile呼び出しだけでなく、やるべきことはかなりたくさんあります。CFFileの敵は、それ自体ではこれを行いません。(奇妙なことにCFHttpはそうしますが)正直なところ、最善の策はJavaライブラリを使用することかもしれません。Apacheから入手できるものがいくつかあります:http://commons.apache.org/csv/

これらはあなたにかなり扱いやすい何かを返すはずです。

「純粋な」coldfusionCSVオプションが必要な場合は、このブログ投稿で特定の実装を確認できます:http: //www.bennadel.com/blog/483-Parsing-CSV-Data-Using-ColdFusion.htm

基本的に、コンテンツ全体を読んでから解析する必要があります。

于 2013-01-23T17:20:56.860 に答える