Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

タグ: 10.12savvy

指定矩形内に含まれるデータをリストで返す v3

Posted on 2月 7, 2018 by Takaaki Naganoya
AppleScript名:指定矩形内に含まれるデータをリストで返す v3
— Created 2017-06-22 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

set aList to {{507, 162}, {338, 166}, {389, 166}, {448, 166}, {286, 110}, {504, 109}, {558, 108}, {341, 113}, {394, 115}, {447, 112}, {234, 107}, {611, 110}, {286, 58}, {501, 63}, {556, 58}, {337, 59}, {391, 60}, {448, 63}, {611, 58}}

set rangeList to {{500, 100}, {550, 180}} –{{x1,y1}, {x2,y2}}
set resList to withinRange(rangeList, aList) of me
–>  {​​​​​{​​​​​​​507, ​​​​​​​162​​​​​}, ​​​​​{​​​​​​​504, ​​​​​​​109​​​​​}​​​}

on withinRange(rangeList as list, targetList as list)
  set aRect to makeNSRect(rangeList) of me
  
  
set includedList to {}
  
repeat with i in targetList
    copy i to {x, y}
    
set aPoint to current application’s NSMakePoint(x, y)
    
set aRes to (current application’s NSPointInRect(aPoint, aRect)) as boolean
    
    
if aRes = true then
      set the end of includedList to contents of i
    end if
  end repeat
  
  
return includedList
end withinRange

on makeNSRect(aList as list)
  try
    copy aList to {{x1, y1}, {x2, y2}}
    
set xWidth to (x2 – x1)
    
set yHeight to (y2 – y1)
    
set a1Rect to {origin:{x:x1, y:y1}, |size|:{width:xWidth, height:yHeight}}
    
return a1Rect
  on error
    return missing value
  end try
end makeNSRect

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

NSRectからの各種情報取得

Posted on 2月 7, 2018 by Takaaki Naganoya
AppleScript名:NSRectからの各種情報取得
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

set aRect to current application’s NSMakeRect(0, 0, 100, 80)
–> {origin:{x:0.0, y:0.0}, |size|:{width:100.0, height:80.0}}

set aWidth to current application’s NSWidth(aRect)
–> 100.0

set aHeight to current application’s NSHeight(aRect)
–> 80.0

set aMinX to current application’s NSMinX(aRect)
–> 0.0

set aMaxX to current application’s NSMaxX(aRect)
–> 100.0

set aMidX to current application’s NSMidX(aRect)
–> 50.0

set aMinY to current application’s NSMinY(aRect)
–> 0.0

set aMaxY to current application’s NSMaxY(aRect)
–> 80.0

set aMidY to current application’s NSMidY(aRect)
–> 40.0

★Click Here to Open This Script 

macOS 10.13以降は(何の説明もなく)NSMakeRectの返り値が変わっているので、注意が必要です。

use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

set aRect to current application’s NSMakeRect(0, 0, 100, 80)
–> {origin:{x:0.0, y:0.0}, |size|:{width:100.0, height:80.0}}
–> {{0.0, 0.0}, {100.0, 80.0}}–macOS 10.13 or later

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

配列の要素数を取得する

Posted on 2月 7, 2018 by Takaaki Naganoya

Cocoaの配列の要素数を取得するAppleScriptです。

AppleScriptの配列であるリスト型変数については、length ofやcount ofで要素数を求められますが、

set aList to {1, 3, 5, 7, 9}
length of aList
--> 5

count of aList
--> 5

Cocoaの配列であるNSArrayやNSMutableArrayについてはこのように求めます。

AppleScriptのリスト型変数には、GUIアプリケーションのオブジェクトやAppleScriptのScriptオブジェクトを格納することが可能ですが、Cocoaの配列であるNSArrayやNSMutableArrayにこれらを代入することはできません。

AppleScript名:配列の要素数を取得する
— Created 2015-09-02 by Takaaki Naganoya
— 2015 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

set anArray to current application’s NSArray’s arrayWithObjects_(1, 2, 3)
–>  (NSArray) {​​​​​1, ​​​​​2, ​​​​​3​​​}

–要素数を取得する
set aSize to anArray’s |count|()
–>  3

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

n次元のリストのすべてのアイテム数をカウント

Posted on 2月 7, 2018 by Takaaki Naganoya

n次元のリスト(配列)のすべてのアイテム数をカウントするAppleScriptです。

2次元でも3次元でも4次元でも、いかなる多次元配列のリストをも1次元配列に変換できるサブルーチン「FlattenList」はいまだに代替できるものが見当たらないほど万能で、この「要素数をカウントする」用途にも使ってみました。

AppleScript名:n次元のリストのすべてのアイテム数をカウント
— Created 2017-10-30 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

set aList to {{1, 2, 3}, {4, 5, 6}, {7, 8, 9, {1, 2, 3}}}
set aRes to FlattenList(aList) of me
set aLen to length of aRes

on FlattenList(aList)
  set oldDelims to AppleScript’s text item delimiters
  
set AppleScript’s text item delimiters to {"????"}
  
set aString to aList as text
  
set aList to text items of aString
  
set AppleScript’s text item delimiters to oldDelims
  
return aList
end FlattenList

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

リスト項目のシャッフル(ASOC)

Posted on 2月 7, 2018 by Takaaki Naganoya

–> ArrayRandomize.framework

AppleScript名:リスト項目のシャッフル(ASOC)
— Created 2016-12-06 by Takaaki Naganoya
— 2016 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "ArrayRandomize" –https://github.com/masakihirokawa/objc-classes-dc-randomize
–http://piyocast.com/as/archives/4351

–配列をシャッフルして取得
set anArray to current application’s NSMutableArray’s alloc()’s initWithArray:{1, 2, 3, 4, 5}
set bArray to (current application’s DCRandomize’s shuffleArray:anArray) as list
–>  {​​​​​5, ​​​​​3, ​​​​​1, ​​​​​2, ​​​​​4​​​}

–1〜10の数値をシャッフルして配列取得
set cArray to (current application’s DCRandomize’s shuffle:1 max:10) as list
–>  {​​​​​9, ​​​​​4, ​​​​​6, ​​​​​5, ​​​​​3, ​​​​​2, ​​​​​7, ​​​​​8, ​​​​​1, ​​​​​10​​​}

–5〜10の範囲の乱数を取得
set dArray to (current application’s DCRandomize’s range:5 max:10) as integer
–>  7

–5〜10の範囲で 9以外の乱数を取得
set eArray to (current application’s DCRandomize’s exact:5 max:10 exceptId:9)
–>  9

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

GameplayKitを使ったリストのシャッフル

Posted on 2月 7, 2018 by Takaaki Naganoya
AppleScript名:GameplayKitを使ったリストのシャッフル
— Created 2016-12-08 by Shane Stanley
use AppleScript version "2.5"
use framework "Foundation"
use framework "GameplayKit"
use scripting additions

set anArray to current application’s NSArray’s arrayWithArray:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
set newArray to anArray’s shuffledArray() as list — requires macOS 10.12

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | 1 Comment

和集合(union)v2

Posted on 2月 7, 2018 by Takaaki Naganoya
AppleScript名:和集合(union)v2
— Created 2017-02-24 by Takaaki Naganoya
— Created 2017-03-01 by Shane Stanley
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
–http://piyocast.com/as/archives/4491

set aSet to current application’s NSMutableSet’s setWithArray:{1, 2, 3, 4}
set bSet to current application’s NSMutableSet’s setWithArray:{3, 5, 6, 7}

aSet’s unionSet:bSet –和集合
aSet’s allObjects() as list
–>  {​​​​​5, ​​​​​1, ​​​​​6, ​​​​​2, ​​​​​7, ​​​​​3, ​​​​​4​​​}

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

補集合(set difference)v2

Posted on 2月 7, 2018 by Takaaki Naganoya
AppleScript名:補集合(set difference)v2
— Created 2017-02-24 by Takaaki Naganoya
— Created 2017-03-01 by Shane Stanley
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
–http://piyocast.com/as/archives/4491

set aSet to current application’s NSMutableSet’s setWithArray:{1, 2, 3, 4}
set bSet to current application’s NSMutableSet’s setWithArray:{3, 5, 6, 7}

aSet’s minusSet:bSet –補集合
aSet’s allObjects() as list
–>  {​​​​​2, ​​​​​1, ​​​​​4​​​}

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

積集合(product)v2

Posted on 2月 7, 2018 by Takaaki Naganoya
AppleScript名:積集合(product)v2
— Created 2017-02-24 by Takaaki Naganoya
— Created 2017-03-01 by Shane Stanley
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
–http://piyocast.com/as/archives/4491

set aSet to current application’s NSMutableSet’s setWithArray:{1, 2, 3, 4}
set bSet to current application’s NSMutableSet’s setWithArray:{3, 5, 6, 7}

aSet’s intersectSet:bSet –積集合
aSet’s allObjects() as list
–>  {​​​​​3​​​}

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

文字を集合(CountedSet)に変換して文字列同士の近似度を計算する(単語単位で評価) v4

Posted on 2月 7, 2018 by Takaaki Naganoya
AppleScript名:文字を集合(CountedSet)に変換して文字列同士の近似度を計算する(単語単位で評価) v4
— Created 2017-03-18 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

set aStr to "This is a pinnapple."
set bStr to "This is an apple."
set cStr to "Piyomaru San Dayo."

set aRes to stringDifferenceWithAppearance(aStr, bStr, "A & B") of me
–>  {​​​​​intersect:2, ​​​​​minus:2, ​​​​​dataLabel:"A & B"​​​}

set bRes to stringDifferenceWithAppearance(bStr, cStr, "B & C") of me
–>  {​​​​​intersect:0, ​​​​​minus:4, ​​​​​dataLabel:"B & C"​​​}

set cRes to stringDifferenceWithAppearance(cStr, aStr, "C & A") of me
–>  {​​​​​intersect:0, ​​​​​minus:3, ​​​​​dataLabel:"C & A"​​​}

–結果をソートする
set allRes to current application’s NSArray’s arrayWithArray:{aRes, bRes, cRes}
set aSortDesc to current application’s NSSortDescriptor’s alloc()’s initWithKey:"intersect" ascending:false
set bSortDesc to current application’s NSSortDescriptor’s alloc()’s initWithKey:"minus" ascending:true
set aSortedArray to allRes’s sortedArrayUsingDescriptors:{aSortDesc, bSortDesc}

–もっとも似ている傾向を持つデータの組み合わせ
set aMostApproximative to aSortedArray’s firstObject() as record
–>  {​​​​​minus:2, ​​​​​dataLabel:"A & B", ​​​​​intersect:2​​​}

–文字列同士の近似傾向を、相違点と重複箇所の2つの方向から計算する
on stringDifferenceWithAppearance(aStr, bStr, aLabel)
  set aMinus to getApproximationBetweenStrings(aStr, bStr) of me
  
set aIntersect to getApproximationBetweenStringsIntersect(aStr, bStr) of me
  
return {intersect:aIntersect, minus:aMinus, dataLabel:aLabel}
end stringDifferenceWithAppearance

–与えられた文字列同士の相違点を計算する(結果がより小さい値のデータ同士が似ている)
on getApproximationBetweenStrings(aStr, bStr)
  set aList to current application’s NSMutableArray’s arrayWithArray:(words of aStr)
  
set bList to current application’s NSMutableArray’s arrayWithArray:(words of bStr)
  
  
set aIndex to current application’s NSCountedSet’s alloc()’s initWithArray:aList
  
set bIndex to current application’s NSCountedSet’s alloc()’s initWithArray:bList
  
  
aIndex’s minusSet:bIndex
  
set aRes to aIndex’s allObjects()’s |count|()
  
  
bIndex’s minusSet:aIndex
  
set bRes to bIndex’s allObjects()’s |count|()
  
  
if aRes ≥ bRes then
    return bRes
  else
    return aRes
  end if
end getApproximationBetweenStrings

–与えられた文字列同士の重複箇所を計算する(結果がより大きい値のデータ同士が似ている)
on getApproximationBetweenStringsIntersect(aStr, bStr)
  set aList to current application’s NSMutableArray’s arrayWithArray:(words of aStr)
  
set bList to current application’s NSMutableArray’s arrayWithArray:(words of bStr)
  
  
set aIndex to current application’s NSCountedSet’s alloc()’s initWithArray:aList
  
set bIndex to current application’s NSCountedSet’s alloc()’s initWithArray:bList
  
  
aIndex’s intersectSet:bIndex
  
set aRes to aIndex’s allObjects()’s |count|()
  
return aRes
end getApproximationBetweenStringsIntersect

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

文字を集合(CountedSet)に変換して文字列同士の近似度を計算する v3

Posted on 2月 7, 2018 by Takaaki Naganoya
AppleScript名:文字を集合(CountedSet)に変換して文字列同士の近似度を計算する v3
— Created 2017-03-18 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

set aStr to "This is a pinnapple."
set bStr to "This is an apple."
set cStr to "Piyomaru San Dayo."

set aRes to stringDifferenceWithAppearance(aStr, bStr, "A & B") of me
–>  {​​​​​intersect:11, ​​​​​minus:3​​​}

set bRes to stringDifferenceWithAppearance(bStr, cStr, "B & C") of me
–>  {​​​​​intersect:5, ​​​​​minus:8​​​}

set cRes to stringDifferenceWithAppearance(cStr, aStr, "C & A") of me
–>  {​​​​​intersect:5, ​​​​​minus:9​​​}

–結果をソートする
set allRes to current application’s NSArray’s arrayWithArray:{aRes, bRes, cRes}
set aSortDesc to current application’s NSSortDescriptor’s alloc()’s initWithKey:"intersect" ascending:false
set bSortDesc to current application’s NSSortDescriptor’s alloc()’s initWithKey:"minus" ascending:true
set aSortedArray to allRes’s sortedArrayUsingDescriptors:{aSortDesc, bSortDesc}

–もっとも似ている傾向を持つデータの組み合わせ
set aMostApproximative to aSortedArray’s firstObject() as record
–>  {​​​​​minus:3, ​​​​​dataLabel:"A & B", ​​​​​intersect:11​​​}

–文字列同士の近似傾向を、相違点と重複箇所の2つの方向から計算する
on stringDifferenceWithAppearance(aStr, bStr, aLabel)
  set aMinus to getApproximationBetweenStrings(aStr, bStr) of me
  
set aIntersect to getApproximationBetweenStringsIntersect(aStr, bStr) of me
  
return {intersect:aIntersect, minus:aMinus, dataLabel:aLabel}
end stringDifferenceWithAppearance

–与えられた文字列同士の相違点を計算する(結果がより小さい値のデータ同士が似ている)
on getApproximationBetweenStrings(aStr, bStr)
  set aList to current application’s NSMutableArray’s arrayWithArray:(characters of aStr)
  
set bList to current application’s NSMutableArray’s arrayWithArray:(characters of bStr)
  
  
set aIndex to current application’s NSCountedSet’s alloc()’s initWithArray:aList
  
set bIndex to current application’s NSCountedSet’s alloc()’s initWithArray:bList
  
  
aIndex’s minusSet:bIndex
  
set aRes to aIndex’s allObjects()’s |count|()
  
  
bIndex’s minusSet:aIndex
  
set bRes to bIndex’s allObjects()’s |count|()
  
  
if aRes ≥ bRes then
    return bRes
  else
    return aRes
  end if
end getApproximationBetweenStrings

–与えられた文字列同士の重複箇所を計算する(結果がより大きい値のデータ同士が似ている)
on getApproximationBetweenStringsIntersect(aStr, bStr)
  set aList to current application’s NSMutableArray’s arrayWithArray:(characters of aStr)
  
set bList to current application’s NSMutableArray’s arrayWithArray:(characters of bStr)
  
  
set aIndex to current application’s NSCountedSet’s alloc()’s initWithArray:aList
  
set bIndex to current application’s NSCountedSet’s alloc()’s initWithArray:bList
  
  
aIndex’s intersectSet:bIndex
  
set aRes to aIndex’s allObjects()’s |count|()
  
return aRes
end getApproximationBetweenStringsIntersect

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

配列から要素を削除する(要素をインデックスで指定)

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:配列から要素を削除する(要素をインデックスで指定)
— Created 2017-02-24 11:37:14 +0900 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

–要素を削除する(要素をインデックスで指定)
set cMuta to current application’s NSMutableArray’s arrayWithObjects_(1, 2, 3)
cMuta’s removeObjectAtIndex:2
cMuta
–>  (NSArray) {​​​​​1, ​​​​​2​​​}

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

配列の要素を削除する(範囲を指定)

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:配列の要素を削除する(範囲を指定)
— Created 2017-02-24 11:37:55 +0900 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

–要素を削除する(範囲を指定)
set dMuta to current application’s NSMutableArray’s arrayWithObjects_(1, 2, 3)
dMuta’s removeObjectsInRange:(current application’s NSMakeRange(0, 1))
dMuta
–>  (NSArray) {​​​​​2, ​​​​​3​​​}

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

配列の要素をすべて削除する

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:配列の要素をすべて削除する
— Created 2017-02-24 11:38:17 +0900 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

–要素をすべて削除する
set eMuta to current application’s NSMutableArray’s arrayWithObjects_(1, 2, 3)
eMuta’s removeAllObjects()
eMuta
–>  (NSArray) {}

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

配列の最後の要素を削除する

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:配列の最後の要素を削除する
— Created 2017-02-24 11:38:39 +0900 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

–最後の要素を削除する
set fMuta to current application’s NSMutableArray’s arrayWithObjects_(1, 2, 3)
fMuta’s removeLastObject()
fMuta
–>  (NSArray) {​​​​​1, ​​​​​2​​​}

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

配列の最初の要素を削除する

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:配列の最初の要素を削除する
— Created 2017-02-24 11:38:58 +0900 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

–最初の要素を削除する
set gMuta to current application’s NSMutableArray’s arrayWithObjects_(1, 2, 3)
gMuta’s removeFirstObject()
gMuta
–>  (NSArray) {​​​​​2, ​​​​​3​​​}

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

配列の指定要素を削除する

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:配列の指定要素を削除する
— Created 2017-10-29 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
–Chapter 6 Lib.asobjcex3doc

set theList to {5, 2, 9, 4, 2, 6, 3}
set bList to my deleteItem:2 fromList:theList
–>  {5, 9, 4, 6, 3}

set cList to deleteItem of me by 2 from theList
–>  {5, 9, 4, 6, 3}

set dList to deleteItemBy(2, theList) of me
–>  {5, 9, 4, 6, 3}

–Objective-Cライクなパラメータ記述
on deleteItem:anItem fromList:theList
  set theArray to current application’s NSMutableArray’s arrayWithArray:theList
  
theArray’s removeObject:anItem
  
return theArray as list
end deleteItem:fromList:

–無意味句による装飾
on deleteItem by anItem from theList
  set aRes to my deleteItem:anItem fromList:theList
  
return aRes
end deleteItem

–Pure AS風のパラメータ記述
on deleteItemBy(anItem, theList)
  set aRes to my deleteItem:anItem fromList:theList
  
return aRes
end deleteItemBy

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

配列から要素を削除する(要素をインデックスで指定)v2

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:配列から要素を削除する(要素をインデックスで指定)v2
— Created 2017-10-29 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
–Chapter 6 Lib.asobjcex3doc

set theList to {1, 2, 3, 4, 5, 6, 7, 8, 9}
set bList to my deleteItemsAtIndexes:{3, 5, 7, 1} fromList:theList
–>  {2, 4, 6, 8, 9}

set bList2 to deleteItems of me by {3, 5, 7, 1} from theList
–>  {​​​​​2, ​​​​​4, ​​​​​6, ​​​​​8, ​​​​​9​​​}

set bList3 to deleteItemsBy({3, 5, 7, 1}, theList) of me
–>  {​​​​​2, ​​​​​4, ​​​​​6, ​​​​​8, ​​​​​9​​​}

–Objective-Cライクなパラメータ記述
on deleteItemsAtIndexes:theIndexes fromList:theList
  set theArray to current application’s NSMutableArray’s arrayWithArray:theList
  
set theSet to current application’s NSMutableIndexSet’s indexSet()
  
repeat with anIndex in theIndexes
    (theSet’s addIndex:(anIndex – 1))
  end repeat
  
theArray’s removeObjectsAtIndexes:theSet
  
return theArray as list
end deleteItemsAtIndexes:fromList:

–無意味区による装飾
on deleteItems by theIndexes from theList
  set aList to my deleteItemsAtIndexes:theIndexes fromList:theList
  
return aList
end deleteItems

–Pure AS風のパラメータ記述
on deleteItemsBy(theIndexes, theList)
  set aList to my deleteItemsAtIndexes:theIndexes fromList:theList
  
return aList
end deleteItemsBy

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

配列の複数の要素を取得する

Posted on 2月 6, 2018 by Takaaki Naganoya

配列(AppleScriptではlist(リスト)と呼ぶ)のうち、複数の要素を取得するAppleScriptです。

AppleScriptでは、配列の要素番号は1からはじまります。0番目の要素というのはありません。

set aList to {1, 2, 3, 4, 5}
set bList to items 1 thru 3 of aList
–> {1, 2, 3}

★Click Here to Open This Script 

対して、CocoaのNSArray / NSMutableArrayでは、配列の要素番号は0からはじまります。AppleScriptからCocoaのNSArrayを用いる場合には、要素番号の指定基準が異なることに注意が必要です。

AppleScript名:配列の複数の要素を取得する
— Created 2015-09-02 by Takaaki Naganoya
— 2015 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

set anArray to current application’s NSArray’s arrayWithObjects_(1, 2, 3)
–>  (NSArray) {​​​​​1, ​​​​​2, ​​​​​3​​​}

–複数の要素を取得する
set anInd to current application’s NSIndexSet’s indexSetWithIndexesInRange:(current application’s NSMakeRange(1, 2))
–>  (NSIndexSet) <NSIndexSet: 0x600000431140>[number of indexes: 2 (in 1 ranges), indexes: (1-2)]

set aRes to anArray’s objectsAtIndexes:anInd
–>  (NSArray) {​​​​​2, ​​​​​3​​​}

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

配列の要素を順番に取得する

Posted on 2月 6, 2018 by Takaaki Naganoya
AppleScript名:配列の要素を順番に取得する
— Created 2015-09-02 by Takaaki Naganoya
— 2015 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

set anArray to current application’s NSArray’s arrayWithObjects_(1, 2, 3)
–>  (NSArray) {​​​​​1, ​​​​​2, ​​​​​3​​​}

–要素を順番に取得する
set anEnum to anArray’s objectEnumerator()
–>  (__NSFastEnumerationEnumerator) <__NSFastEnumerationEnumerator: 0x6000002c1180>
repeat
  set aValue to anEnum’s nextObject()
  
if aValue = missing value then exit repeat
  
log aValue
end repeat

★Click Here to Open This Script 

Posted in list | Tagged 10.11savvy 10.12savvy 10.13savvy | Leave a comment

Post navigation

  • Older posts
  • Newer posts

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • 開発機としてM2 Mac miniが来たのでガチレビュー
  • macOS 15, Sequoia
  • Pages本執筆中に、2つの書類モード切り替えに気がついた
  • Numbersで選択範囲のセルの前後の空白を削除
  • メキシカンハットの描画
  • Pixelmator Pro v3.6.4でAppleScriptからの操作時の挙動に違和感が
  • AppleScriptによる並列処理
  • Safariで「プロファイル」機能を使うとAppleScriptの処理に影響
  • macOS 15でも変化したText to Speech環境
  • AppleScript入門③AppleScriptを使った「自動化」とは?
  • デフォルトインストールされたフォント名を取得するAppleScript
  • macOS 15 リモートApple Eventsにバグ?
  • 【続報】macOS 15.5で特定ファイル名パターンのfileをaliasにcastすると100%クラッシュするバグ
  • AppleScript入門① AppleScriptってなんだろう?
  • Script Debuggerの開発と販売が2025年に終了
  • macOS 14で変更になったOSバージョン取得APIの返り値
  • NSObjectのクラス名を取得 v2.1
  • 有害ではなくなっていたSpaces
  • macOS 15:スクリプトエディタのAppleScript用語辞書を確認できない
  • Xcode上のAppleScriptObjCのプログラムから、Xcodeのログ欄へのメッセージ出力を実行

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1391) 10.14savvy (587) 10.15savvy (438) 11.0savvy (283) 12.0savvy (212) 13.0savvy (194) 14.0savvy (147) 15.0savvy (135) CotEditor (66) Finder (51) iTunes (19) Keynote (119) NSAlert (61) NSArray (51) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (53) NSDictionary (28) NSFileManager (23) NSFont (21) NSImage (41) NSJSONSerialization (21) NSMutableArray (63) NSMutableDictionary (22) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (119) NSURL (98) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (76) Pages (55) Safari (44) Script Editor (27) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Beginner
  • Benchmark
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • check sum
  • Clipboard
  • Cocoa-AppleScript Applet
  • Code Sign
  • Color
  • Custom Class
  • date
  • dialog
  • diff
  • drive
  • Droplet
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Localize
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • parallel processing
  • PDF
  • Peripheral
  • process
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2025年6月
  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC