hashValueSort

構文
hashValueSort( Var hash[] )
引数
hash
値でソートする連想配列(参照引数)
戻値

プログラム

//////////////////////////////////////////////////
// 【引数】
//   hash : 値でソートする連想配列(参照引数) 
// 【戻値】
// 
//////////////////////////////////////////////////
PROCEDURE hashValueSort(Var hash[])
	HASHTBL tmp = HASH_SORT
	DIM cnt = LENGTH(hash)
	hashInvert(hash)
	FOR n = 0 TO cnt - 1
		tmp[hash[n, HASH_KEY]] = hash[n, HASH_VAL]
	NEXT
	hash = HASH_REMOVEALL
	FOR n = 0 TO cnt - 1
		hash[tmp[n, HASH_VAL]] = tmp[n, HASH_KEY]
	NEXT
FEND

//////////////////////////////////////////////////
// 【引数】
//   hash : キーと値を入れ替える連想配列(参照引数) 
// 【戻値】
// 
//////////////////////////////////////////////////
PROCEDURE hashInvert(Var hash[])
	HASHTBL tmp
	DIM cnt = LENGTH(hash)
	FOR n = 0 TO cnt - 1
		tmp[hash[n, HASH_VAL]] = hash[n, HASH_KEY]
	NEXT
	hash = HASH_REMOVEALL
	FOR n = 0 TO cnt - 1
		hash[tmp[n, HASH_KEY]] = tmp[n, HASH_VAL]
	NEXT
FEND