fieldA、fieldB、および fieldC のバックグラウンドがあると仮定すると、CSV ファイルをスタックにロードしたいと思います。CSV ファイルには A、B、C の 3 つの列があります。[読み込み] ボタンのスクリプトはどのようになっていますか?
2358 次
3 に答える
2
コンテンツを逐語的にロードしたい場合は、
on mouseUp
put url ("file:" & pathToFile) into tContents
end mouseUp
トリックを行います。列をフィールドに入れるには、もう少し作業を行う必要があります。一方通行:
on mouseUp
put url ("file:" & pathToFile) into tContents
-- set the itemDelimiter to tab -- if necessary
repeat for each line tLine in tContents
put item 1 of tLine & cr after field "fieldA"
put item 2 of tLine & cr after field "fieldB"
put item 3 of tLine & cr after field "fieldC"
end repeat
end mouseUp
于 2013-04-18T21:09:48.273 に答える
0
データを変数 lCsvData に読み込むには:
local lCsvData
on importCsv
answer file "Chooose CSV file..."
if it is not empty then
put it into myPath
put url ("binfile:" & myPath) into myData
これで、データをデコードできます。
put urlDecode(urlEncode(myData,"UTF8")) into myData
問題: データにリターンが含まれている可能性があります。アイテムから返品を削除しましょう。必要に応じて、各アイテムを個別に処理できます。
put empty into lCsvData
set the itemDel to semicolon
repeat for each line myLine in myData
repeat for each item myItem in myLine
put replaceText(myItem,cr,numToChar(14)) after lCsvData
end repeat
put cr after lCsvData
end repeat
end if
end importCsv
これで、クリーンなデータが得られました。行を選択して、次の方法でフィールドに入れることができます。
on showLine theLine
put line theLine of of lCsvData into myLine
set the itemDel to semicolon
repeat for each item myItem in myLine
put replaceText(myLine,numToChar(14),tab) into fld 1
end repeat
end showLine
ここで、theLine は整数です。タブの代わりに cr を使用でき、このスクリプトを任意の方法で調整して、出力フィールドをフォーマットできます。
于 2013-04-20T22:52:09.160 に答える
0
データがクリーンな場合、CSV ファイルには通常、フィールドが「;」で区切られています。したがって、それらをタブに置き換えて、「基本テーブルフィールド」を使用できます。
put url ("file:" & pathToFile) into tData
replace ";" with tab in tData
put tData into field "data"
データが UTF8 などの場合は、最初に変換する必要があります。
于 2013-04-19T04:30:01.810 に答える