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

ignoreLast

発言者:猫の手
( Date Wednesday, February 18, 1998 08:16:32 )


 Tanaka's osaxのforceの恵みを受けているものの一人ですが、今日は一つ質問を。

 itemsToListが、二つのデリミタに対応して、
一気に二次元の配列(List)を作ってくれるようになったので、
本当にスクリプトが簡単になったと喜んでいるのですが、
対象文字列の最後にデリミタが来たときに、
それを無視するかどうかと言うオプションが以前にはあったと思うのですが、
すくなくとも1.24には無くなっているようなのですが、これは仕様でしょうか?
このオプション頼りにスクリプトをしているcgiがいくつかあるように思うので、
手を入れなければならないと思っていますが、
できれば、将来のバージョンで、最後のデリミタを無視するオプションを
復活していただければなあ、と、願っているのですが。

田中求之 さんからのコメント
( Wednesday, February 18, 1998 16:34:49 )

ignoring last オプションは 1.24 ではなくなりました。

これは、複数行のレコードの切り分けに対応する際に、整合性がとれない
(たとえば、各行の最後の Tab はカウントしておきながら、最終行の
最後の Tab のみ無視するのはおかしい)というのが大きな原因ですが、
他にも「最後を無視するというのがデフォルトなのはおかしい」との
指摘をいただいたということもあります。

本来は複数行に対応させたということで、別の新たなコマンドにすることも
考えましたが、いくら節操なくコマンドを増やしている私としても(もっと
整理しろと多くの人からいわれてます)、似たようなものが混在するのは
避けたいと思い、あえてコマンドの機能変更の形にしました。改行コード
が含まれていない文字列の場合には、最後の itemDellimiter も考慮
するという点を除けば(これが大きな変更点ですけど)、従来と同じ
形のリストを返すようになっています。

AppleScript の text item delimiter によるリスト分けにおいては、
たとえ文字列の最後にデリミタが来ていても、それを考慮しますよね。
本来、これが正しい動作ですので、それに合わせたとして、ご理解いただければ
幸いです。

日本語のページの方には ignoring last の点については触れていませんでしたね。
追加しておきます。

猫の手 さんからのコメント
( Thursday, February 19, 1998 11:36:44 )

 たぶん、どのitem無視するかと言うことが難しくなるだろうなと思っていました。

 ところで、osaxは、ハイパーカードの機能拡張のように、
必要なものだけりソースエディタで切り張りするというのは
できないんでしょうね。

田中求之@幕張 さんからのコメント
( Thursday, February 19, 1998 23:57:18 )

osax 自体は、コマンドごとに独立したリソースになっていますので、XCMD のように
自分に必要なものだけをかき集めることができるのですが、問題は、コンパイルの時に
ひつようになる辞書情報の方です。これが一つのリソースにまとまっているため、
自分に必要なものだけを残すための編集作業が必要になります。
(resEdit に aete リソースエディタが入っていて、扱い方がわかっていれば
簡単ですが)。

もし、バンドルなり配付なりで縮小版が必要な場合には、相談に応じますよ。

猫の手 さんからのコメント
( Friday, February 20, 1998 08:06:02 )

 なるほど、かき集めが可能なんですね。
辞書は、ユーザのためだけにあって、動作に関係ないのなら、
自分で、お気に入りを作れるのか。


>相談に応じますよ。
ありがとうございます。必要になりましたら、お願いするかもしれません。

猫の手 さんからのコメント
( Friday, February 20, 1998 09:05:11 )

 この話題、つづけて書いていますが。

 linedelimiterを記述しない場合も、linedelimiterは考慮されるのですか?
itemsToList "a:b:c
" itemDelimiter ":"
の結果が、{{"a", "b", "c"}, {""}}となるのですが。

田中もとゆき@幕張セッティング中 さんからのコメント
( Friday, February 20, 1998 09:58:57 )

return (改行)が入る限り、すべてカウントします。
ですから、最後に改行があると、空のレコードがあると
みなします。

猫の手 さんからのコメント
( Friday, February 20, 1998 12:22:15 )

 すごい状況下で、コメントをありがとうございます。
 エキスポも参加したかったんだけど、とんでもない仕事の状況で、
首でもつったろうかと言うくらい忙しいので、残念でした。

 で、lineDelimiterを全く無視するオプション。
今まで書いてきたスクリプトが、この最後のリターンに全く無頓着だったもので、
古いスクリプトに障害がでています。
全く個人的な都合なんですが。

 linedelimiterにとんでもないパラメータを渡せばいいのかな?
それにしても、それように改造する必要がでてきたわけで。
楽しみが増えたです。わくわく。

猫の手 さんからのコメント
( Friday, February 20, 1998 12:25:05 )

 違う話ですが、

 リソースエディタで、osaxの好きなところをコピーするとして、
例えば、dirListerをdLに変えるようなことは、簡単にできますか?
リソースエディタのレベルでは無理ですか。

無理かな。無理だろな。

田中求之 さんからのコメント
( Friday, February 20, 1998 23:46:09 )

ResEdit + aete リソースエディタがあれば、すっげぇ簡単にできます (^_^;;

猫の手 さんからのコメント
( Monday, February 23, 1998 12:08:06 )

aete リソースは、どこでてにはいるのでしょうか。
それがないためか、resEditでみてもよくわかりませんでした。

田中求之 さんからのコメント
( Monday, February 23, 1998 15:46:46 )

aete リソースエディタは Apple の Deceloper 用サイトにあります。

今調べてみたら、私が使っているやつは、以下の URL にありました(FTP)



→  ResEdit 'aete' Editor 1.0b4

田中求之 さんからのコメント
( Monday, February 23, 1998 15:48:04 )

あ、リンクがおかしくなってますね。以下の URL です。

ftp://ftpdev.info.apple.com/devworld/Tool_Chest/Interapplication_Communication/AE_Tools_/ResEdit_%27aete%27_Editor_1.0b4.sit.hqx

→  'aete' Editor

猫の手 さんからのコメント
( Monday, March 02, 1998 08:00:58 )

 ありがとうございました。ようやくダウンロードしました。
うちは、FTPを使わせてくれないので、ニフティーのFTPで落とすという
面倒な作業が必要になります。

 それに、モデムをシェアしてて、昼間はなかなか使えなかったりするので。

猫の手 さんからのコメント
( Friday, March 06, 1998 14:20:01 )

 aeteリソースをresEditに入れてみたんだけど、
どーも、私には、なにがなんだかわかりません。
私の限界を突破しているようです。