ファイルにデータを書き込むのは、ファイルを開く、書き込む、ファイルを閉じる手順で行う。書き込む時は、ファイルを開く際に「with write permission」を指定して、書き込み権を与える必要がある。
trychoose file name with prompt “保存するファイルを選ぶべし” set Filename1 to resultopen for access aFile with write permissiontry–set eof aFile to 0write “山田太郎” to aFileon errorclose access aFilereturnend tryclose access aFileend try
write命令は、バイト単位で書き込むらしく、書き込むデータの長さより、既存ファイルのデータが長いと、前回のデータが残ってしまう。
既存の内容
太郎、次郎、三郎
書き込む内容
山田太郎
結果
山田太郎郎、三郎
これじゃぁ、既存ファイルに正しくデータを書き込めない。
上書きしたい時は、ファイルの中身を消去してから書き込めばよいので、ファイルの終わりをintegerバイト目に設定する「set eof」というコマンドを使えばよさそう。
set eof outFile to 0
という様に、ファイルの終端(end of file)を0バイト目に設定すれば、ファイルの中身を消去した事になる。一番上のコードのコメントアウトしてある部分のコメントを外せばよい。これで、上の例でもファイルに「山田太郎」とだけ書き込む事ができる。
既存のファイルに追加して内容を書き込みたい時は、既存ファイルからEOFの位置を取得して、その次のバイトから書き込めばいいはず。
あわせてこちらの記事もどうぞ
