read 整数1 | ファイル参照 [[using delimiter 様々な値] as クラス識別子 ] [from 整数2] [for 整数3 | to 整数4 | before 文字列1 | until 文字列2]
整数1 | データを読むファイルのファイル参照番号 (open for accessの結果で得られる値) |
ファイル参照 | データを読むファイル alias "..." か file "..."の形式 |
様々な値 | このデータで区切ってリストとして返す (2つまでのリストも可) |
クラス識別子 | 読み込み、返すデータのタイプ |
整数2 | このバイト位置から読み込む (ファイルの末尾を超えていたら無視される) |
整数3 | 現在の位置から何バイト読み込むか (ファイルの末尾からのデータは無視される) |
整数4 | このバイト位置で止める |
文字列1 | この文字が含まれる直前まで読む |
文字列2 | この文字が含まれるまで読む |
様々な値 | ファイルから読み込んだデータ |
主にテキストファイルを読み込むのに使うが、それ以外のファイルについても問題なく読み込める。
ファイルを読み込みの終点はfor | to | before | untilのうちから一つを指定する。終点の指定がない場合は、ファイルの末尾まで読み込む。
read実行後、読み込み開始地点(ファイルマーク)が移動するので、さらにreadを実行すると続きが読み込まれる。
open for access命令を使わずに読んだ場合、read命令の前後で暗黙にファイルが開かれ、また閉じられる。この場合の書式は簡単に済むが、当然ファイルマークを利用することができず速度も遅い(例2)
クラス指定にはboolen | data | integer | list | real | record | short | text | character | unicode text | date | icon 等使用でき、as "PICT"と指定するとPICTデータも使える。詳しくはAppleScript Scripting Additions Guide English DialectのreadとUsing Read/Write Commandsの項を参照してほしい。
using delimiterを使う場合は、asでクラスを指定する必要があるようで、例えば次のように書く。
read fPointer using delimiter {",",return} as text
try
set fPointer to open for access (choose file)
set theFile to read fPointer
on error
end try
close access fPointer
theFile
set theFile to read (choose file)