blechmusikの日記

いろいろなことを書いています。

日本語入力用の配列(ローマ字かな変換表版)の設定を数値に変換する関数を作成した

これで、日本語入力用の配列でハッシュ法を使用した判定を常に使用することができそうだ。本来であれば再帰で書くべき処理だろうが……

;;; 文字列を 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

この関数を使用すれば、日本語入力用の配列(ローマ字かな変換表版)の判定処理を大幅に改善できるだろう。