![Autoitの配列](http://take-web.com/auto/wp-content/uploads/2020/10/autoit-array-31.png)
![](http://take-web.com/auto/wp-content/themes/cocoon-master/images/man.png)
AutoitはBasicのような言語で、工夫次第ではUWSCを超えるいいスクリプト言語です。画像認識も優れています。
今回は、迷いながら使ってる配列の備忘録です。
Autoitの詳細はこちらでどうぞ:
配列の宣言
Local $ar1[]=[1,5,9]
#include <Array.au3> Local $ar1[] = [1,5,9] _ArrayDisplay($ar1)
最初のインクルードは関数「_ArrayDisplay()」を使うために必要です。
![配列一覧](http://take-web.com/cad/wp-content/uploads/2020/01/2020-1-27_7-37_No-00.png)
Local $ar1 = [1,5,9]
これでも動きました。うしろに[ ]があるので配列として認識してると思います。
配列のデータすべて変えるには (配列の再初期化)
#include <Array.au3> Local $ar1 = [1,5,9] $ar1 = [10,50,90] _ArrayDisplay($ar1)
これだと、データ変わりません。
![配列の最初期化](http://take-web.com/cad/wp-content/uploads/2020/01/array-change.png)
#include <Array.au3> Local $ar1 = [1,5,9] Local $ar1 = [10,50,90] ; <=== _ArrayDisplay($ar1)
Local, Global, Dim をつけないとだめなようです。
Localをつけることで初期化するようです。
Local $ar1[] ;これはエラーになります
Local $ar1[] $ar1[0] = 100
![エラー表示](http://take-web.com/cad/wp-content/uploads/2020/01/2020-1-27_8-28_No-00.png)
Variable subscript badly formatted 書き方の形式が間違ってるようです。
動的に配列変わらないようです。
#include <Array.au3> Local $ar1[3] $ar1[0] = 100 _ArrayDisplay($ar1)
何か数字入れればOK、配列の個数を最初に決めないとダメなようです。
![配列要素の数](http://take-web.com/cad/wp-content/uploads/2020/01/2020-1-27_9-41_No-00.png)
先頭、Local ,Global ,Dim でもいい。その時の状況によって
Global $arr[3]
Local $arr[3]
Dim $arr[3]
配列を返す関数
StringSplit 文字列を与えられた区切り文字列で分割 >> 配列
Local $arr = StringSplit($str,”,”)
カンマで区切る、$arr[0]:配列の総数 $arr[1]からデータ
2次元配列 Local $arr[3][3]
#include <Array.au3> Local $ar[3][3] = [[1,2,3], _ [4,5,6], _ [7,8,9]] _ArrayDisplay($ar)
![Autoit 2次元配列](http://take-web.com/cad/wp-content/uploads/2020/01/2020-1-27_11-1_No-00.png)
_は、命令文を複数行にするために必要です。
配列で使えるユーザー関数
上記のサイト、海外からアクセスできないので魚拓しました。
#Include <Array.au3> ; これ必要です
ユーザー定義関数 | 説明 |
_ArrayAdd | 指定した値を既存の配列の末尾に追加します。 |
_ArrayBinarySearch | バイナリサーチアルゴリズムを使用して1次元配列の検索をおこないます。 |
_ArrayCombinations | 選択した配列から要素の組み合わせを作成し、配列にいれて返します。 |
_ArrayConcatenate | 2つの配列を連結します。 |
_ArrayDelete | 与えた配列から指定した要素を削除します。 |
_ArrayDisplay | 与えられた1次元または2次元の配列をリストビューに表示します。 |
_ArrayFindAll | 1次元、2次元配列の2つの要素間で検索クエリの存在する全ての要素のインデックスを_ArraySearch()を使用して見つけます。 |
_ArrayInsert | 新しい値を指定した位置に追加します。 |
_ArrayMax | 配列の保持するもっとも大きい値を返します。 |
_ArrayMaxIndex | 配列内で最大の値がはいっている要素のインデックスを返します。 |
_ArrayMin | 配列の保持するもっとも小さい値を返します。 |
_ArrayMinIndex | 配列内で最小の値がはいっている要素のインデックスを返します。 |
_ArrayPermute | 配列内の全要素の順列を配列で返します。 |
_ArrayPop | 配列の末尾の要素を返します。同時にその要素を配列から削除します。 |
_ArrayPush | 末尾に新しい値を挿入し、1番目の要素を削除、または逆をおこなうことで配列サイズを増やさずに値を追加します。 |
_ArrayReverse | 配列を受け取り、配列内の要素の並び順を逆転させます。 |
_ArraySearch | 1次元、2次元配列内のエントリーを見つけます。配列をソートする必要がないこと以外は_ArrayBinarySearch()と同様です。 |
_ArraySort | クイックソート/挿入ソートアルゴリズムを使用して、1次元配列または2次元配列の指定したインデックスをソートします。 |
_ArraySwap | 2つのアイテムを入れ換えます。 |
_ArrayToClip | 配列の内容をクリップボードに送信します。各要素はキャリッジリターンによって区切られます。 |
_ArrayToString | 配列の要素を指定した区切り文字で分けられた1つの文字列に変換します。 |
_ArrayTrim | 配列内の全ての要素から指定した文字数だけ削除します。 |
_ArrayUnique | 1次元配列のユニークな要素を返します。 |
コメント