AppleScriptのリスト(list)型変数に対して、一般的な配列の添字的なパラメータを指定して値の設定や取得を行うAppleScriptです。
一般的なプログラミング言語には必ず存在する配列変数、AppleScriptにも当然存在しており、リスト型(list)変数と呼ばれています。
一般的な配列変数と異なる点は3点ほど。
・配列要素が1からはじまる(item 0はない)
・配列要素への間接アクセスは可能なものの、item x of aListのように一般的な配列添字とは異なる記述を行う
・配列要素として各種GUIアプリケーションのオブジェクトやScriptオブジェクトを突っ込める
といったところでしょうか。あとは、条件抽出とかソートなどの機能は備わっていないので、昨今ではCocoaの機能を呼び出してNSArrayに変換してからこのような処理を行なっています(要素数が少ない(1万以下)場合には、AppleScriptだけでループ処理で条件抽出したほうが速い)。
ないものをない、と嘆くだけならアホでもできるので、配列添字的なアクセスがしたいのなら作ってしまえばいいじゃないか、ということで作ったのがこれです。
「Safariで現在見えている表を抽出してCSV書き出しv3」などの処理に使っています。多分、この処理は本ルーチンが存在していたからできたものです。
AppleScript名:配列に添字的なデータを指定してアクセス |
— Created 2017-09-30 by Takaaki Naganoya — 2017 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" set aList to make2DBlankArray(3, 4) of me set aList to setItemByXY(2, 3, aList, "@") of me set aRes to getItemByXY(2, 3, aList, "") of me return aList –> {{"", "", ""}, {"", "", ""}, {"", "@", ""}, {"", "", ""}} on getItemByXY(aX, aY, aList, aBlankItem) try set aContents to contents of (item aX of item aY of aList) on error set aContents to aBlankItem end try return aContents end getItemByXY on setItemByXY(aX, aY, aList, aContents) set (item aX of item aY of aList) to aContents return aList end setItemByXY –空白の2D Array を出力する on make2DBlankArray(curLen, curMax) set outArray to {} repeat curMax times set aList to {} repeat curLen times set the end of aList to "" end repeat set the end of outArray to aList end repeat return outArray end make2DBlankArray |
More from my site
(Visited 337 times, 1 visits today)
配列に添字的なデータを指定してアクセス v2 – AppleScriptの穴 says:
[…] AppleScriptのリスト(list)型変数に対して、一般的な配列の添字的なパラメータを指定して値の設定や取得を行うAppleScriptの改良版です。 […]