2013年6月2日日曜日

.notesアトリビュートの書き込み

自作セットアップツールの改定をしていて、外部ファイルに書き出すほどではないものの、
次の作業時に参照するデータを残したいということになりました。
そこでアトリビュートエディタのNotesを使えばよかろうと、
軽い気持ちで試してみたところちょっとした落とし穴にはまってしまったというのが今回。


まずロケータを作成し、アトリビュートエディタのNoteに文字を記入します。
これを取得するのにgetAttrを試したところ、".notes"アトリビュートで成功。
それでは書き込みはsetAttrでいけるだろうと、Notesを空にして実行したら
エラーが出てしまいました。
どうやら"-string"フラグを使用せよとのこと、それではと追加したのですが
今度は".notes"アトリビュートそのものが無いと言われてしまいました。
一体なにがなにやらとスクリプトエディタをEchoAllにして、
アトリビュートエディタに文字を書いたり消したりしてみますと、
どうやらscriptJobでアトリビュートをaddしたりdeleteしている様子。
そこで、適当な文字を入力したままでもう一度setAttrしてみると成功です。
つまり何か入力されている時だけ".notes"アトリビュートが存在し
内容が無くなると削除されてしまう様子。
何も書き込まれていない状況からは、addAttrを使用して
アトリビュートを追加してから書き込む必要があるのでした。
これで書き込み成功です。
テキスト情報は、改行されていても文字配列とはならず
改行情報込みの文字列として扱われるので、
取得して利用する場合は必要に応じてtokenizeすることりなります。