2

私はしばらくの間これを探し回っていましたが、解決策を見つけることができません。たとえば、次のデータを含むCSVがあります。

1,2,3、a、b、c、4,5,6、d、e、f、7,8,9,0
0,9,8、g、h、i、7,6,4、k 、l、m、5、4、3、2
など..

trueまたはfalseの特定のフィールドを除いて、各行にはほとんど異なるデータが含まれています。

私が必要としているのは、各行をリストとしてプルして、データを解析できるようにすることです。

たとえば、すべてのリストからアイテム番号3を削除してから、スプレッドシートで使用するデータを保存できるようにしたいと思います。

私はapplescriptに比較的慣れていないので、まだそれを理解しようとしていることを覚えておいてください。多くのサイトで強く推奨されているように見える本を購入しましたが、まだ配信されていません。:-)

また、これを行うための別の/より良い方法を知っているなら、私は喜んで試してみます。

現在、私は次のことをしています。

Blockquote-変数の
設定LFをASCII文字に設定10-
ファイルの選択
prompt1を「デバイスCSVファイルを見つけてください...」
に設定csvDevicesを「testfile.csv」に設定
--csvDevicesを(プロンプトprompt1でファイルを選択)に設定
-ファイルをメモリ
に読み取るcsvLinesを読み取ってcsvDevices
を設定AppleScriptのテキストアイテム区切り文字を{LF}
に設定csvEntriesをcsvLinesの段落に
設定AppleScriptのテキストアイテム区切り文字を{"、"}に設定
--ゴミをフィルタリング
するcsvNoTitleを残りのcsvEntriesに設定--削除Title Line
set lineCount to count csvNoTitle

その後、内容を印刷することができますが、それは私に与えます

{"1,2,3、a、b、c、4,5,6、d、e、f、7,8,9,0"、 "0,9,8、g、h、i、7、 6,4、k、l、m、5,4,3,2 "、" etc ... "}

私が欲しいものではなく

{"1"、 "2"、 "3"、 "a"、 "b"、 "c"、 "4"、 "5"、 "6"、 "d"、 "e"、 "f"、 " 7 "、" 8 "、" 9 "、" 0 "}
{" 0 "、" 9 "、" 8 "、" g "、" h "、" i "、" 7 "、" 6 "、" 4 "、" k "、" l "、" m "、" 5 "、" 4 "、" 3 "、" 2 "}
{" etc ... "}

ちなみに、スクリプトの最初の行は、実際に役立つデータがない説明行であるため、またはとにかく私には削除されません。

助けてくれてありがとう

4

1 に答える 1

2

テキストCSVファイルをレコード(1行)に分割してから、各レコードを値(コンマで区切る)に分割する必要があります。CSVテキストファイルがあるポイントから文字列(csvLines)にこの方法で進むことができます。

-- getting records (you don't need to set applescript's text item delimiters here)
set recs to paragraphs of csvLines

-- getting values for each record
set vals to {}
set applescript's text item delimiters to ","
repeat with i from 1 to length of recs
    set end of vals to text items of (item i of recs)
end repeat

-- this is true
(item 1 of vals) = {"1","2","3","a","b","c","4","5","6","d","e","f","7","8","9","0"} 

これにより、フィルタリングせずにファイル全体が解析されます。しかし、それは正しいCSV解析のアイデアを与えるためだけのものです。データをフィルタリングする方法はすでに知っています。

于 2013-02-18T15:16:24.470 に答える