このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

osax 1.0b10のwriteToFileで構文エラーが

発言者:smart
( Date Tuesday, October 08, 1996 10:36:00 )


AppleScriptに慣れるために、簡単なスクリプトを書いております。
Tanaka's osax 1.0b10のwriteToFileのcreatorを使用した所、creator "JEDT"
と書いて、構文チェックをすると、自動的にcreator type "JEDT"となります。
ところが、これを再度構文チェックするとエラーになります。
したがって、コンパイルの度にtypeの部分を消して対応しておりますが、
何か環境設定等で対処出来るのでしょうか。
宜しく、ご回答をお願いします。

      writeToFile "Numer of record = " & (length of myList) & return as string to file myFile creator type "JEDT"

田中求之 さんからのコメント
( Tuesday, October 08, 1996 13:18:05 )

>Tanaka's osax 1.0b10のwriteToFileのcreatorを使用した所、creator "JEDT"
>と書いて、構文チェックをすると、自動的にcreator type "JEDT"となります。
>ところが、これを再度構文チェックするとエラーになります。

Tanaka's osax 以外にもいくつか osax を使っていませんか? 上記のような症状は
複数の osax を使っていて、それらがパラメーターの名前に関して「コンフリクト」を
起こしているのだと思われます( tanaka's osax は、ファイル関連のものは Finder
にあわせてあるので、通常は上記のようなことは起こらないはずなのですが)。

ファイルを扱う osax などを入れてませんか?

解決方法は、問題となる osax を抜いてしまうか、あるいは、コンパイル前には書き換える
という作業を続けるしかありません。

smart さんからのコメント
( Tuesday, October 08, 1996 21:13:47 )

早速のご回答ありがとうございます。
スクリプティング機能追加フォルダーには、MacHTTPに付いてきた物が沢山
入っておりました。Tanaka's osaxと表現形式フォルダー以外を全て外した所、
property crlf : (ASCII character 13) & (ASCII character 10)
のcharacterでエラーが発生したので、試行錯誤してString Commandsだけを
追加しました。しかし、以前として症状は変りません。osaxはこの他はどこに
あるのでしょうか。ご回答をお願いします。

田中求之 さんからのコメント
( Wednesday, October 09, 1996 00:16:21 )

スクリプティング機能拡張フォルダーの中に何を残すか、ですが、Finder の
情報を見る( Get Info )で確認してもらうと、Apple Computer が作った
ものかどうかが分かります。Apple が作ったものはすべて残しておいてください。
(漢字Talkシステムに付属のものを残します。MacHTTP についてくるものは、基
本的には不要です)

Apple 純正以外に Tanaka's osax しか入っていないのであれば、上記のような
問題は起きないはずなのですが、変ですね?

システムのバージョンはいくつですか?

smart さんからのコメント
( Wednesday, October 09, 1996 08:21:30 )

遅くまで、ありがとうございます。
色々と試して見ましたが、
tell application "Finder"
 writeToFile xyz to file myFile creator "JEDT"
end tell
とすると必ずこの現象が発生します。お試しください。


田中求之 さんからのコメント
( Wednesday, October 09, 1996 13:53:37 )

確認しました。

Finderの中で writeToFile を使うと、おっしゃるように creator がコンパイル時に
creator type に書き換えられます。

これは Tanaka's osax の辞書情報のせいです( Finder と「コンフリクト」してた
わけですね (^_^;; )

class を Finder に合わせていたのですが、辞書情報の方を合わせるのを忘れて
いたようです。

すみませんが、Finder の内部で writeToFile を使うときには上記のような
現象が起きるということに気を付けて使っていただくしかありません。

なお、osaxは、なるべくアプリケーションの外で呼ぶようにしたほうが、処理速度は
速いはずです(あまり大きな差は生じないと思いますが)。