情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

AutoHotkeyで変数名を組み立てて変数の中身を取得するちょっと不思議な方法 このエントリーを含むはてなブックマーク

StringTrimLeftのちょっと不思議な使い方を紹介。

使い方

使い方だけ書くと次の通り。

StringTrimLeft, 格納先変数名, アクセス先変数名をここで作る, 0

こうすることで、自分で作った変数名の中身にアクセスすることが出来ます。以下では、配列の末尾にアクセスする例を紹介します。

使用例:コンビネーションキーのpostfixキーを取得する

「a & b::Msgbox, % get_postfix_key()」を実行して「b」と表示される関数「get_postfix_key()」を作ります。

get_postfix_key()

簡単に作ると次のようになります。

get_postfix_key()
{
	StringSplit, hotkey_array, A_ThisHotkey, %A_Space%&%A_Space% ; (1)
	StringTrimLeft, postfix_key, hotkey_array%hotkey_array0%, 0 ; (2)
	Return postfix_key ; (3)
}

(1)で、トリガとなったホットキー(A_thisHotkey)を「 & 」で区切って配列「hotkey_array」に保存します。こうして、配列の0番目には配列の長さが、1番目にprefixキーが、2番目にpostfixキーが格納されるので、必要な2番目を取り出します。

配列から値を取り出す方法

ここで、2番目を取り出したいわけですが、AutoHotkeyでは、配列「hotkey_array」の2番目の要素は「hotkey_array2」にアクセスすることで取得します。つまり、変数名を作成してからアクセスする必要があります。そこで便利なのがStringTrimLeftで、(2)の行では、「hotkey_array%hotkey_array0%」によって、「hotkey_array2」という変数名を作成してから、その内容をpostfix_key変数へ丸ごとコピーしています。非常にトリッキーですが変数名を格納する変数をわざわざ作る必要が無くて便利です。

最後に、その内容をReturn文で返して完了です。

参考

おすすめキーボード Realforce
プログラマ御用達キーボード PFU Happly Hacking Keyboard

AutoHotkey | コメント:0 | トラックバック:0 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

この記事のコメント

コメントの投稿 エントリの新旧に関わらず、極力18時間中に返信します。














この記事のトラックバック

トラックバックURL:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。