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

Tanaka's osax 1.2b4 公開

発言者:田中求之
( Date Tuesday, September 30, 1997 18:28:00 )


Tanaka's osax 1.2b4 を公開します。ベータ版ですので、そのつもりで
お試しください。



→  Tanaka's osax Beta

つちや さんからのコメント
( Monday, October 06, 1997 09:25:10 )

さっそく試してみました。
ListToLinesコマンドが便利そうなので、いろいろ試してみました。
で、ちょっと気になることがありました。
今までのリスト連結の方法と、ListToLinesの方法の速度を以下のような
スクリプトで比べたところ、

--今までの方法
set myTime to current date
set theList to {"a", "b", "c", "d", "e", "f", "g"}
repeat 500 times
  set oldDel to AppleScript's text item delimiters
  set AppleScript's text item delimiters to {","}
  set theString to theList as string
  set AppleScript's text item delimiters to oldDel
end repeat
((current date) - myTime) & theString

では、6秒で終わったのに対し、

--ListToLinesを使う方法
set myTime to current date
set theList to {"a", "b", "c", "d", "e", "f", "g"}
repeat 500 times
  set theString to ListToLines theList lineDelimiter ","
end repeat
((current date) - myTime) & theString

では、32秒かかりました。

??という感じです。
Osaxを使った処理は速いと思っていたんですが、
そうでない場合もあるのでしょうか。

つちや さんからのコメント
( Monday, October 06, 1997 09:27:25 )

書き忘れました。
上の測定はPerforma5210,OS7.6.1上で行いました。

田中求之 さんからのコメント
( Monday, October 06, 1997 13:26:26 )

>Osaxを使った処理は速いと思っていたんですが、
>そうでない場合もあるのでしょうか。

あります。そして、この ListToLines の場合は、つちやさんのレポートにあるように
osax の方が確実に遅いでしょう。

で、なんでこんなものを作ったかというと、AppleScript's text item delimiter
がグローバルプロパティであるため、操作には気をつけないといけないのが面倒になった
ので、試しに作ってみました (^_^;;


猫の手 さんからのコメント
( Tuesday, October 07, 1997 13:10:39 )

もう、Tanaka's osaxがなければ毎日過ごせない状況にあります。


ところで、以前から思っていたのですが、

validatelistをとっても便利に使わせていただいているのですが、

日付の中で、日については、{1997,12,45}というリストに対して、

{1998, 1, 14, 0, 0, 0, 4}を返してくれるのですが、

{1997,13,1}だと、エラーになってしまいます。

月についても、動作してくれると助かるんですが。


もし、機械がありましたら、対応していただければ、幸いです。

田中求之 さんからのコメント
( Tuesday, October 07, 1997 17:07:24 )

>月についても、動作してくれると助かるんですが。

以下のようなハンドラーではいけませんか (^_^;;

on correctDate(dList)
  repeat while (item 2 of dList < 1)
    set item 1 of dList to (item 1 of dList) - 1
    set item 2 of dList to (item 2 of dList) + 12
  end repeat
  
  repeat while (item 2 of dList > 12)
    set item 1 of dList to (item 1 of dList) + 1
    set item 2 of dList to (item 2 of dList) - 12
  end repeat
  
  return valiDateList dList
end correctDate


猫の手 さんからのコメント
( Wednesday, October 08, 1997 07:54:42 )

 コメントありがとうございます。

 実際には、そうやって使っていますが、根が、不精なもので。

 validatelistが便利すぎるから、ぜいたくを言っているのかな。

 もしも、万一、その気になられたら、覚えていたら、で結構ですので。


 ところで、OS8に変えてみたんですが、なぜか、

 改行コードが変になって、送り返されてくるページを見てたら、

 改行が余分にでているようです。どうしてかな。

つちや さんからのコメント
( Wednesday, October 08, 1997 19:22:23 )

>改行コードが変になって、送り返されてくるページを見てたら、
>改行が余分にでているようです。どうしてかな。

OS8はまだインストールしていないのではずしているかも知れませんが、
PPCMac版のMSIEから投稿すると、改行コードが標準のCRLFではなく
CRLFLFになるため、余分な改行コードが挿入されてしまいます。