連想配列-スクリプト構文:UWSC,

<連想配列>
 // 連想配列の宣言
 HASHTBL 変数
 HASHTBL 変数 = HASH_CASECARE  // 大文字小文字を区別する(デフォルトは区別しない)
 HASHTBL 変数 = HASH_SORT    // 順列で読出す時にキーはソートされている

 // 値の設定・読出しは一次元配列と同じ (読出し時、キーが無ければEMPTYを返す)
 変数[キー] = データ

 // キーが存在するか
 変数[キー, HASH_EXISTS]     // キーが存在すればTrueを返す

 // 削除
 変数[キー, HASH_REMOVE]     // 削除できればTrueを返す

 // 順列読出し
 変数[順列番号, HASH_KEY]     // キーを返す
 変数[順列番号, HASH_VAL]     // 値を返す

 // 中身のクリア
 変数 = HASH_REMOVEALL

 ※ 削除 HASH_REMOVE は必要無くとも変数で受ける必要あり

 

【例:サンプル】
// 連想配列の操作
PUBLIC HASHTBL B     // パブリック、大・小文字区別しない、キーは書込み順
HASHTBL A = HASH_CASECARE or HASH_SORT // 大・小文字区別、キーはソート

A["あ"] = 1
A["う"] = 3
A["お"] = 5
A["え"] = 4
A["い"] = 2
A["お"] = 9

// “う”の値は何?
print “‘う’ の値は ” + A["う"]

// “え”があれば削除
ifb A["え", HASH_EXISTS]
  flg = A["え", HASH_REMOVE]    // 必要無くとも変数で受ける
endif

// ソート順で表示 (文字型での昇順ソート)
for n = 0 to Length(A)-1
  print A[n, HASH_KEY] + ” = ” + A[n, HASH_VAL]
next

// 関数に渡す (一次元配列の渡し方と同じ)
testproc(A)

Procedure testproc( X[] )
 print X["あ"]
Fend

このエントリーをはてなブックマークに追加

コメントを残す