がんばっとります

先週の間に解決した問題。

  • pygame.key.get_pressed()を使うと記号部分が正しく取得できない
    • PyWin32とctypesで解決
  • ローマ字・かな入力自動認識
    • 変換テーブルをPyYAMLにしてみたけど結構意味無し(笑)
  • カラオケタグの解析


ローマ字の自動認識モジュールは前に一度作っていたのですが(id:tomoemon:20060203)、この前のハードディスク破損で消滅してしまったようで一から作り直しました。この作成に先立ってpygame.key.get_pressed()が不思議な挙動を示したのでキーボードの状態を取得するためにPythonからWin32APIを使って解決してみました。まずGetKeyboardStateをPyWin32で呼び出し、ハードウェアスキャンコードを取得した後、MapVirtualKeyでハードウェアスキャンコードからASCIIコードに変換するというなんとも泥臭い感じです(笑)
カラオケタグはタイムタグ仕様書(開発者向け)を見ればわかるとおり行頭タイムタグに比べてなかなか柔軟なのでちょっと大変でした。とは言っても正規表現使えばさくっと時間も取得できるので楽なもんです。