2012年3月3日土曜日

[AppleScript] リストをソートする

あえてチャレンジしてたけど挫折して放置したシリーズ。
ググったらすぐ見つかったのでご紹介です。

配列の値の最小値を得る
ScriptTextBook's NoteBook - AppleScript内に記述されたPerlを実行する

AppleScriptとperlの合体技がたくさんあります


タイトルは最小値の取得ですが置いてくれていたスクリプトはソートするものでした。
ありがたく使わせていただきます。
ていうかコレ使ったら今までのスクリプト結構軽量化できそう・・・やらないけど。

スクリプト内で「given」って記述をはじめて見て戸惑ったけど、普通のハンドラぽかったので初心者な僕でも読めるように書き換えました。
下がそのコード。ついでにハンドラにした。

--aListをソート
on sortList(aList)
set command to "perl -e"
set perlScript to quoted form of "print join ' ', (sort @ARGV)"
set the_array to aList
set ARGV to join(the_array, " ")
set the_result to do shell script command & " " & perlScript & " " & ARGV
split(the_result, " ")
end sortList

on join(aArray, deliChar)
set defaultDelimita to AppleScript's text item delimiters
try
set AppleScript's text item delimiters to deliChar
set temp to text items of aArray as Unicode text
set AppleScript's text item delimiters to defaultDelimita
on error errMsg number errNum
set AppleScript's text item delimiters to defaultDelimita
return ""
end try
return temp
end join

on split(aText, deliChar)
set defaultDelimita to AppleScript's text item delimiters
set AppleScript's text item delimiters to deliChar
set array to text items of aText as list
set AppleScript's text item delimiters to defaultDelimita
return array
end split

0 件のコメント:

コメントを投稿