これで、日本語入力用の配列でハッシュ法を使用した判定を常に使用することができそうだ。本来であれば再帰で書くべき処理だろうが……
;;; 文字列を Ascii Code を使用する数値に変換して返す関数 Return_PsuedoAsciiCode(str) { str_PsuedoAsciiCode = while, (str) { ;; 文字列の長さが 0 ならば処理を終了する if (StrLen(str) = 0) return ;; 文字列から左の1文字を抜き取る StringLeft, str_L1, str, 1 ;; 文字列から左の1文字を削除する StringTrimLeft, str, str, 1 ;; 抜き取った1文字の Ascii Code を取得して、以下の値を掛け合わせる ;; 1000 の (残りの文字列)乗 str_PsuedoAsciiCode += (Asc(str_L1) * (1000 ** StrLen(str))) } ;; 文字列を数値に変換したものを返り値とする return str_PsuedoAsciiCode }
この関数が返す引数の例を示そう。 "a", "ab", "abc", "abcd", "abcde", "abcdef"を渡した返値を表にまとめる。
引数 | 返値 |
---|---|
a | 97 |
ab | 97098 |
abc | 9709899 |
abcd | 97099100 |
abcde | 97099100101 |
abcdef | 97099100101102 |
この関数を使用すれば、日本語入力用の配列(ローマ字かな変換表版)の判定処理を大幅に改善できるだろう。