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

リスト内の並べ替え

発言者:jaymes
( Date Tuesday, May 11, 2004 19:49:22 )


リスト内のアイテムの並べ替えをしたいのですが、

{"25111_7","22305_9","25303_2","21403_9","22304_35"}

のようになっているリストを

{"21403_9","22304_35","22305_9","25111_7","25303_2"}

と最初の5ケタで順番に並べた変えたいのです。

どなたか判る方いたら教えて下さい。

田中求之 さんからのコメント
( Wednesday, May 12, 2004 14:26:46 )

OS X ではどうなっているのか分かりませんが、AppleScript にはソートの
コマンドはありませんので、自分でソートするスクリプトを書くことになり
ます。

とりあえず動けばいいのでしたら、以下のようなスクリプトが使えます
(バブルソートなんでリストのアイテムが多くなると遅くなりますが)

set srcList to {"25111_7", "22305_9", "25303_2", "21403_9", "22304_35"}

set x to count srcList
repeat x times
  repeat with i from 1 to (x - 1)
    if (text 1 thru 5 of item i of srcList) > (text 1 thru 5 of item (i + 1) of srcList) then
      copy item i of srcList to myTemp
      copy contents of item (i + 1) of srcList to item i of srcList
      copy myTemp to item (i + 1) of srcList
    end if
  end repeat
end repeat

このスクリプトが終了した時点で srcList の中身は
{"21403_9", "22304_35", "22305_9", "25111_7", "25303_2"}
になります。

jaymes さんからのコメント
( Wednesday, May 12, 2004 20:34:13 )

ありがとうございます。
早速試してみました、期待通りの結果が得られました。
中身はじっくり見て勉強したいと思います。