Revで作成したテキストをPCにテキストファイルとして保存するためのスクリプトです。
on SaveLog tDat
put getPrefsFolderPath() & "Valentina/log.txt"
into theFileName
open file theFileName --for text read
read from file theFileName until EOF -- ファイルの終わりまで読む
close file theFileName
if it is empty then
create folder getPrefsFolderPath() & "Valentina/"
else
put it into NewDat
end if
put tDat & cr before NewDat
put NewDat into URL ("file:" & theFileName)
end SaveLog
Function getPrefsFolderPath
if the platform = "MacOS" then
put specialFolderPath("Preferences") into prefsFolder
else if the platform = "Win32" then
put specialFolderPath(26) into prefsFolder
end if
if last char of prefsFolder is not "/" then put \
"/" after prefsFolder
return prefsFolder
end getPrefsFolderPath
|
これをスタックかカードに書いておき、ボタンのスクリプトに、SaveLog "ABCD" と書いておくと、log.txtというファイルに"ABCD"とかかれます。log.txtがPCに存在する場合は、既存のテキストの前に"ABCD"が挿入され、log.txtが存在しない場合、新規にlog.txtを作成しその中に"ABCD"と書かれます。
ここではファイルの保存先を「通常の設定フォルダ」に作成したValentinaフォルダにしています。(通常のアプリケーションが設定ファイルを書くフォルダ)
そのため、getPrefsFolderPathでスクリプトが走っているマシンがWindowsかMacかを識別し、それぞれに対応した「通常の設定フォルダ」のパスを出力しています。
SaveLogは、getPrefsFolderPathで求めたパスに、log.txtというファイル名でファイルを書くためのものです。tDatには、そのファイルに書かれるべきテキストが入っています。
SaveLogの中で、既にlog.txtがPCに存在するかどうかで最初のif文が分岐します。すなわち、log.txtがPCに存在しない場合、Valentina/というフォルダを作成し、log.txtが存在する場合、log.txtの内容をNewDatにcopyします。
最後の行でファイルをPCに書き込みます。
|