Tei5’s Blog

Tei5 の メモ書き

OBS / HIDMacros で 外付けキーボードをプログラマブルキーボード化

OBS Studio がかなり便利。

設定のホットキーを設定しておくと、ワンタッチでシーンを切り替えたり、スライドショーの順送り逆戻しみたいなことが可能。

だけど、一般的なキーボードでワンストークのホットキーにしていると、OBS以外のアプリとバッティングする。(テキストエディタを開いて読みながら、裏でOBSを動かしている場合、OBSホットキーを押した瞬間に反応してしまう。あまり使わないキーにしておけばいいが、実際のホットキーが使いにくいと意味がない。)

 

そこで、メインのキーボードとは別のキーボード(テンキー)を左手用に、マクロ専用のキーパッド代わりにするツールをつかう。

HID macros

かなり高機能っぽい。

・複数のキーボードを別々の設定にできる。(メインキーボードの[1]は通常通り、外部テンキーの[1]はマクロが動くなど)

・マウス、ジョイスティック(ボタンも軸も)なども設定可。

・アプリケーションの起動もできる。

スクリプトが組めるっぽい。(よくわからない)

 

■設定のヒント

 ・初回起動時、レジストリのエラーがでるみたい。管理者権限で動くようだが、自己責任で。

・Macros タブで、New。 Nameを適当につけて、TriggerのScanを押す。

設定したい物理的なキーを押す。Action の Send Keyboard Sequencs に動作したい内容を入力。詳細は下記参照。

最後に一番上の Compile All で設定できるようだ。

・起動中だけ、有効らしい。

 

・ キーストロークシーケンスでサポートされている修飾子
+ = シフト
^ = コントロール
% = Alt
& = タブ

 文字やキー名のシーケンスを括弧で囲み、グループとして変更することができます。

例えば、'+abc' は 'a' のみをシフトしますが、'+(abc)' は 3 文字すべてをシフトします。

修飾子 + ^ と % の前には < または > を付けることができます。その場合、左キーまたは右キーのコードが使用されます。

・サポートされている特殊文字
~ = Enter
( = 修飾子グループを開始(上記参照)
) = 修飾子グループを終了(上記参照)
{ = 開始キー名テキスト(下記参照)
} = 終了キー名テキスト(下記参照)

 

・OBSでは、F13~F24の設定はできなさそう。

通常あまり使わなそうな、Ctrl+Shift+Alt+F1 みたいなものを設定すると良いかも。

 

 

続きを読む

trdsql CSVに対してSQLを

CSVやTSVに対してSQLでデータ処理をしたい場合がある。

色々ツールがあるようだけど、個人的に具合が良いなと思うのが、trdsql。

 

・入出力形式が多い。CSV, TSV, JSONなど。標準入力も使える。

SQLのエンジンを色々使える。ディフォルトは SQLiteで、mysql、postgres も可。

・複数CSVの JOINも可能。

Windows版バイナリもある。

 

コツが必要な所が合ったので、メモ。

 

■ trdsql 追加メモ

文字コードUTF-8(? みたいなので)、nkf32 にパイプする。

 

・ファイルパスは そのままの記述でよさげ。ドライブ名も、¥マークも。
trdsql -icsv -od "\t" "SELECT * FROM D:\TEMP\集計.CSV NA ORDER BY NA.c1" | nkf32

 

・ファイルパスにスペースやハイフンが含まれるときは、ファイルパスを「\"」で囲む。( \ は¥マークね)
trdsql -icsv -od "\t" "SELECT * FROM \"D:\TEMP\集計 コピー.CSV\" NA ORDER BY NA.c1" | nkf32

UWSCの場合、「 "SELECT ~~~ FROM \<#DBL>" + CSV_PATH + "\<#DBL> " 」 みたいに指定する。

 

コマンドプロンプトだと、「`」で区切って表示されるが、実行指定時は、それではダメみたい。

 

・テーブル名は、基本的にフルパスで指定したほうが問題が無さそう。
 ファイル名がない場合、勝手にカレントから読むっぽい。それが、トラブルの原因になりそう。


・標準入力は 「-」 で指定できる
type sample.csv | trdsql -ih -oat "SELECT name FROM -"

 

CSV読むときは、-icsv をつけて、<テーブル名>.c1 みたいに参照できる。c1 は1番目のカラム。

CSVにヘッダがある場合、 -icsv -ih みたいにオプションつければ、<テーブル名>.DATE みたいにカラム名で参照できる。逆にカラム名に c1 とかは使えなくなる。

 

■以下 ヘルプの日本語訳

----------
trdsql - CSV、LTSV、JSON、TBLNに対してSQLクエリを実行する。

使用方法:
trdsql [OPTIONS] [SQL(SELECT...]]

オプション:
-A string ファイルを解析し、SQLのみを提案します。
-a string ファイルを解析して SQL を提案します。
-config string 設定ファイルの場所を指定します。
-db string 設定のデータベース名を指定します。
-dblist 設定のdb名を指定します。
-debug string デバッグを表示します。
-driver string データベースドライバを指定します。[ mysql | postgres | sqlite3 ]
-dsn string データベースドライバ固有のデータソース名です。
-help 使用方法の情報を表示します。
-q string 指定したファイルからクエリを読み込みます。
-version バージョン情報を表示します。
入力オプション:
-icsv 入力用のCSV形式です。
-id string 入力するフィールドの区切り文字です。(デフォルトは",")
-ig 拡張子からフォーマットを推測します。(デフォルトは "true ")
-ih 1行目はカラム名として解釈されます(CSVのみ)。
-ijson 入力にはJSON形式を使用します。
-iltsv 入力にはLTSV形式を使用します。
-ir int カラム判定のために読み込んだ行数を指定します。(デフォルトは1)
-is int ヘッダ行をスキップします。(デフォルトは0)
-itbln TBLN 形式で入力します。
出力オプション:
-oaq すべてのフィールドを引用符で囲んで出力します。
-oat 出力にはASCIIテーブルフォーマットを使用します。
-ocrlf 出力にはCRLFを使用します。各出力行を'\n'の代わりに'\r\n'で終了させます。
-ocsv 出力はCSV形式です。
-od string 出力するフィールドの区切り文字です。(デフォルトは",")
-oh ヘッダとして出力カラム名を指定します。
-ojson 出力にJSONフォーマットを使用します。
-ojsonl JSON Linesフォーマットで出力します。
-oltsv LTSV形式で出力します。
-omd マークダウン形式で出力します。
-onowrap 長い行を折り返さない(at/mdのみ)
-oq string 出力用クオート文字 (デフォルトは"\"")
-oraw Raw形式で出力します。
-otbln TBLN フォーマットで出力します。
-out string 出力ファイル名を指定します。
-out-without-guess 推測せずに出力します(-outを使用した場合)。
-ovf 出力用の縦書きフォーマットです。
-oz string 出力ファイルの圧縮形式を指定します。 [ gz | bz2 | zstd | lz4 | xz ]


www.DeepL.com/Translator(無料版)で翻訳しました。


----------
使用サンプル

trdsql "select c4,c6,c7,c8 from in1.txt where c3='0'" >in2q.txt
trdsql "SELECT u.*,h.c2 FROM in2t.txt as u LEFT JOIN keitai.csv as h ON(u.c4=h.c1)" > in3q.txt

----------
trdsql - Execute SQL queries on CSV, LTSV, JSON and TBLN.

Usage:
trdsql [OPTIONS] [SQL(SELECT...)]

Options:
-A string analyze the file but only suggest SQL.
-a string analyze the file and suggest SQL.
-config string configuration file location.
-db string specify db name of the setting.
-dblist display db information.
-debug debug print.
-driver string database driver. [ mysql | postgres | sqlite3 ]
-dsn string database driver specific data source name.
-help display usage information.
-q string read query from the specified file.
-version display version information.
Input options:
-icsv CSV format for input.
-id string field delimiter for input. (default ",")
-ig guess format from extension. (default "true")
-ih the first line is interpreted as column names(CSV only).
-ijson JSON format for input.
-iltsv LTSV format for input.
-ir int number of row preread for column determination. (default 1)
-is int skip header row. (default 0)
-itbln TBLN format for input.
Output options:
-oaq enclose all fields in quotes for output.
-oat ASCII Table format for output.
-ocrlf use CRLF for output. End each output line with '\r\n' instead of '\n'.
-ocsv CSV format for output.
-od string field delimiter for output. (default ",")
-oh output column name as header.
-ojson JSON format for output.
-ojsonl JSON Lines format for output.
-oltsv LTSV format for output.
-omd Markdown format for output.
-onowrap do not wrap long lines(at/md only).
-oq string quote character for output. (default "\"")
-oraw Raw format for output.
-otbln TBLN format for output.
-out string output file name.
-out-without-guess output without guessing (when using -out).
-ovf Vertical format for output.
-oz string output compression format. [ gz | bz2 | zstd | lz4 | xz ]

----------

弥生販売19 データベースへODBC

Windows10で 弥生販売19の接続。

UWSCODBCを使って弥生販売のSQL Server 2014 へ接続したい。32bitドライバぽいので、↓から開いて、設定。 

  コントロールパネルから呼び出せない?見当たらない。もしやWindows10Homeだから?

 

32bit版で、システムDNS で設定してみた。 これで行けた。

 

 

Sqlcmd から、CSVの出力を整えたい

1)「n件処理されました。」を消す

SQLCMDで出力時、最後に、「n件処理されました。」も出力されてしまう。
これを出ないようにするには、SQLの中に「set nocount on」を書いておく。

 

2)2行目の「---,---」を取りたい

ヘッダーを消すのは、sqlcmdのオプションに「 -h -1 」を付けると、ヘッダーと、2行目の「---」が消える。2行目だけ消すのは出来ないみたい。

SQLCMDでハイフンを抑制する方法 : 初心者入門サンプル

対策A)出すだけ出して、2行目をsedawkで抜く。

対策B)ヘッダーを「-h -1」で非表示にして、さらにヘッダーを自前で出力。

 

A4 2面がA3見開きになっているPDFを、A4小冊子にしたい。

Maker Faire Tokyo 2019 行きます!

事前にプログラムガイドを印刷しておきたい。

が、PDFが A4 2面がA3見開きになっている。A4小冊子にしたい。

 

(例) Makerfaier パンフレット もとデータB5x16面 が B4x8面になってる

https://makezine.jp/event/wp-content/themes/makerfairetokyo/mft2019/img/program/MFT2019_PGUIDE_web.pdf

 

・元データ
ページ番号
16 01
02 03
04 05
06 07
08 09
10 11
12 13
14 15


1 Acrobat Reader DC で、ポスター印刷。2面になるように倍率調整(99.9%とか)
2 仮想PDFプリンタで出力して、分割。
3 CubePDF Utility とかで、16ページを最後に移動して、順通りにして保存
4 PDFを小冊子で印刷。

 ⇒Happy!

DAYS GONE ハマリ 

DAYS GONE オモロイ!

が、少々バグもあって、ストーリーが進行出来なくなる致命的なバグもある。

 

ストーリー上、仲間キャラクターを護衛しながらバイクまでというストーリーの途中に、仲間キャラクターの導線上でゾンビクマを倒してしまって、そこで仲間キャラクターがひっかかり進まなくなってしまうバグがあった。

再起動したり、しばらく前からやり直しても、ゾンビグマの死体がそのまま消えなくて、どうにもこうにも進まなくなってしまった。

キャラクターを無視してバイクまで戻ってみようとしても、ミッションエリアを出るとなって、再スタートしてしまう。

いよいよ積んだかと思って、やる気がなくなったのだけれども、対応策があった。

ストーリーの少し前に戻って、バイクをゾンビグマの近くに移動しておく。

問題のゾンビグマ死体のところで停まっている仲間キャラクターにバイクに乗って近づくと、仲間キャラクターが轢かれないよう避ける。バイクをうまく移動して避けさせてやると引っ掛かりがなくなって、進行できた!

結論:仲間キャラの引っかかりは、バイクで轢いてやろう!