キー配列読み込み時のエラー
どういう訳だかキー配列読み込み時にエラーが発生するようになりましたので、それに対処したという話です。
エラーが頻発するのは薙刀式と蜂蜜小梅配列です。エラーメッセージは、配列ファイルの要素数がおかしいというもので、要素数0になっています。
現象が発生するのは、いったん紅皿が立ちあがったのち、再び配列ファイルを読み込むときに限定されます。(ここで気付くべきでした。)
・キー配列ファイルに不具合があるのではないか。
⇒ その都度、見直しましたが不具合らしきものはなし。
・キー配列ファイルの変数の初期化がうまくいっていないのではないか?
⇒ すべて初期化しました。変化なし。
・連想配列の初期化がうまくいっていないのではないか?
⇒ オブジェクト要素の削除関数を作りました。変化なし。
・ファイル読み込み関数のクセのためではないか?
⇒ モダン形式のファイル読み込み関数に書き換えました。変化なし。
・変数をトレスすると、キー配列のラインバッファを連想配列にセットしたのち、ランダムに連想配列のモード変数が予期せぬ値に書き換わっていました。
⇒ ReadLayout6.ahk のモード変数を追いかけましたが、書き換えている場所はありませんでした。
ここで、モード変数を全プロジェクトに亘って追いかけると、10mSEC割込みの中で同じ名前の変数を使っていた・・・という。そうです、Autohotkey の変数は基本的に global なので、割込みルーチンで使っていた変数と、変数名が衝突していたのですね。
以下を対処すると、問題は解消しました。
・ReadLayout6.ahk のモード変数名を固有名称に変更。
・ファイル読み込み時には、10mSEC割込みを停止し、読み込んだあとに割り込みを再開。