0

fieldA、fieldB、および fieldC のバックグラウンドがあると仮定すると、CSV ファイルをスタックにロードしたいと思います。CSV ファイルには A、B、C の 3 つの列があります。[読み込み] ボタンのスクリプトはどのようになっていますか?

4

3 に答える 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 に答える