暫くロックリッジウィークリー初級を済ませるだけで1週間が終わっていましたが、ここ数日で夢幻やETに連れて行って貰うことがありまして、コートとアイテム拾いを担当させていただきました。
精算の際はどのようなレアアイテムを拾ったかを書き出す訳ですが、ここも省力化できるならしたい。
ということで精算のアイテム書き出しを、Sakura Editor正規表現を使ってやってみましょう。
精算の際はどのようなレアアイテムを拾ったかを書き出す訳ですが、ここも省力化できるならしたい。
ということで精算のアイテム書き出しを、Sakura Editor正規表現を使ってやってみましょう。
①アイテム獲得メッセージを表示して/savechat
カートの出し入れ、倉庫に一度入れてからの取り出し等を駆使してアイテム獲得メッセージを表示してください。※既に入っているアイテムと混ざらないように気を付けましょう
②チャットログを開き、置換を実行
置換(Ctrl+R、または検索(S)メニューから)で正規表現を有効にして行います。
①の獲得メッセージを意図的に出力した範囲だけ抜き出して、新規作成したウィンドウ(タブ)に貼ってから行ないます。
カートの出し入れ、倉庫に一度入れてからの取り出し等を駆使してアイテム獲得メッセージを表示してください。※既に入っているアイテムと混ざらないように気を付けましょう
②チャットログを開き、置換を実行
置換(Ctrl+R、または検索(S)メニューから)で正規表現を有効にして行います。
①の獲得メッセージを意図的に出力した範囲だけ抜き出して、新規作成したウィンドウ(タブ)に貼ってから行ないます。
- 置換前(N)「^(.+) (\d+) 個獲得」置換後(P)「$1\t$2」
→ アイテム獲得メッセージをタブで名前と個数に分ける。 - 置換前(N)「^[^\t]*\r\n」置換後(P)「」(空です)
→ アイテム獲得メッセージ以外を除外する。 - 置換前(N)「(.*) \[(\d)\]\t」置換後(P)「s$2$1\t」
→ スロットありの武器を「s0○○○」の形式にする。 - 置換前(N)「\t」置換後(P)「\*」
→ 最初のタブ分けをなくし、「名前*個数」の形式にする。
置換後についてはお好みで「x」とか「」とかにしても良いですね。 - Ctrl+Aでテキスト全選択からのAlt+Aでソートし、同じ装備の行を1つにまとめる。
- 置換前(N)「\r\n」置換後(P)「\t」
→ 改行をタブに置換して1行にまとめる。 - 置換前(N)「(.{1,35})\t」置換後(P)「$1\r\n」
→ タブ区切りされた最大35文字で改行する。
ROのチャット最大文字数は半角70文字ですが
Sakura EditorのUnicode版では半角も全角も1文字扱いなので半分の35にします。 - 置換前(N)「\t」置換後(P)「 」(半角スペース)
→ 最後にタブを空白にする。
③チャットに1行ずつ貼る
もう少しまとめて置換すればもっと回数少なく実現できるかもしれませんが、細々と分けて望みの形にしていく方が何をしているか説明しやすく、途中で方向転換もしやすいです。
正規表現で加工を繰り返す際のコツは「元のテキストに登場しない文字を使って区切る」ことで、今回というか多くの場合はタブや改行を挟んで要素を分けると加工しやすくなります。
ただ、何回もこの手順を見て繰り返すの面倒ですね。
そこで登場するのが、Sakura Editorのキーマクロ機能です。
もう少しまとめて置換すればもっと回数少なく実現できるかもしれませんが、細々と分けて望みの形にしていく方が何をしているか説明しやすく、途中で方向転換もしやすいです。
正規表現で加工を繰り返す際のコツは「元のテキストに登場しない文字を使って区切る」ことで、今回というか多くの場合はタブや改行を挟んで要素を分けると加工しやすくなります。
ただ、何回もこの手順を見て繰り返すの面倒ですね。
そこで登場するのが、Sakura Editorのキーマクロ機能です。
- キーマクロの記録開始(Shift+Ctrl+M、またはツール(T)メニューから)を実行
- ②の1~5(個数を手動で書き換えるところを除く)まで実行
- キーマクロの保存(Ctrl+M、またはツール(T)メニューから)で保存
名前は「RO精算①」等にします。 - キーマクロの記録開始(Shift+Ctrl+M、またはツール(T)メニューから)を実行
- ②の6~8まで実行
- キーマクロの保存(Ctrl+M、またはツール(T)メニューから)で保存
名前は「RO精算②」等にします。
- ツール(T)メニューから名前を指定してマクロを実行(E)「RO精算①」
- 同じ装備を1行にまとめる
- ツール(T)メニューから名前を指定してマクロを実行(E)「RO精算②」