- 僕のログ切りのひみつを君だけにそっと教えちゃうよ!
使用ツール
- 秀丸
- マクロ使うので。
- マクロ
- お手伝いマクロ「編集君」改
改っていうほどいじってないんだけどね。
フォーマット
PL発言部分
[ハンドル] 1234567891011121314151617181920212223242526272829←70文字
↑
全角スペース。
1バイトは半角スペースで調整してるんだぜ
ハンドル部は[]含めて12バイト(全角で6文字)にしてるんだぜ
トータルで70バイト(全角35文字)だぜ
キャラ発言部分
紫 :「はい……海、みたいですね」 ←70文字
↑ ↑
全角スペース 全角スペース
ha06のゆかりんさんに発言してもらったぜ!
:までは16バイト(全角8文字)なんだぜ
トータルで70文字(全角35文字)、1バイトは半角スペースで調整してるのは一緒なんだぜ
※もっとも、改行位置については、見栄えを重視して多少前後することがあるんだぜ
マクロ
//********************************************************************
<!-- お手伝いマクロ−語り部通信編集規約に修正(秀丸用) -->
<!-- 『編集君』 ver0.4(EHOM04.MAC) -->
<!-- -->
<!-- 96/01/24 月坂史葉(SHO) -->
<!-- 97/01/04 sf -->
<!-- -->
<!-- バージョンアップの履歴 -->
<!-- ・0.1->0.2 コードの整理 -->
<!-- 処理中の画面の書き換えを抑止 -->
<!-- -->
<!-- ・0.2->0.3 台詞の最後の感嘆符に空白の入るバグを修正。 -->
<!-- 閉じ丸カッコ直前の感嘆符に入るバグを修正。 -->
<!-- -->
<!-- ・0.3->0.4 中黒(・)を単体で用いた場合にも(……)に修正され -->
<!-- てしまうバグを修正。 -->
<!-- -->
<!-- ・0.4->0.5 感嘆符の後の入り括弧の前が空白になるのを防いだ。 -->
<!-- replaceall->replaceallfast -->
<!-- 二重鍵括弧の前の空白を除去 -->
<!-- 台本形式部分の正規化 -->
<!-- 行末空白の除去 -->
<!-- 一バイト空白のタブ化 -->
<!-- -->
<!-- -->
<!-- ******************************************************************** -->
disabledraw;
disableinvert;
<!-- ◆一バイト空白のタブ化 -->
gofiletop;
selectall;
totab;
escape;
<!-- ◆カナ修正セクション -->
Sect1:
gofiletop;
searchdown "[ァ-ン]+",word,regular;
if(result == true){
selectword;
tozenkakukata;
escape;
goto Sect1;
}
<!-- ◆記号修正セクション -->
<!-- 修正前($BEFORE) 修正後($AFTER) -->
<!-- 対象記号その1 -->
$BEFORE[0] = "("; $AFTER[0] = "(";
$BEFORE[1] = ")"; $AFTER[1] = ")";
$BEFORE[2] = "。」"; $AFTER[2] = "」";
$BEFORE[3] = "」"; $AFTER[3] = "」";
$BEFORE[4] = "「"; $AFTER[4] = "「";
$BEFORE[5] = "、"; $AFTER[5] = "、";
$BEFORE[6] = "。"; $AFTER[6] = "。";
<!-- 対象記号その2(正規表現が必要なもの) -->
$BEFORE[7] = "!!+"; $AFTER[7] = "!!";
$BEFORE[8] = "!?+"; $AFTER[8] = "!?";
$BEFORE[9] = "?!+"; $AFTER[9] = "?!";
$BEFORE[10] = "??+"; $AFTER[10] = "??";
<!-- (……の処理) -->
$BEFORE[11] = "・・+"; $AFTER[11] = "…";
$BEFORE[12] = "・+"; $AFTER[12] = "…";
$BEFORE[13] = "・・+"; $AFTER[13] = "…";
$BEFORE[14] = "・・+"; $AFTER[14] = "…";
$BEFORE[15] = "…+"; $AFTER[15] = "…";
<!-- (……の最終修正) -->
$BEFORE[16] = "…"; $AFTER[16] = "……";
<!-- 行末空白の除去 -->
$BEFORE[17] = " \n"; $AFTER[17] = "\n";
<!-- 名前の無い部分の正規化 -->
$BEFORE[18] = "^[ ]+[::]"; $AFTER[18] = " :";
$BEFORE[19] = "^ [( )( )]+";$AFTER[19] = " : ";
<!-- 名前の部分の正規化 -->
$BEFORE[20] = " + :"; $AFTER[20] = " :";
$BEFORE[21] = " +:"; $AFTER[21] = " :";
<!-- #を#に 「 」を「 」に -->
$BEFORE[22] = "#"; $AFTER[22] = "#";
$BEFORE[23] = "] "; $AFTER[23] = "] ";
<!-- 頻出処理 -->
$BEFORE[24] = "[Hisasi] "; $AFTER[24] = "[Hisasi] ";
$BEFORE[25] = "#"; $AFTER[25] = "";
#BEFOREAFTER = 25; //最終の要素番号
#FIRSTFLUG = 6; //対象記号その1の最後の要素番号
#SECONDFLUG = 7; //対象記号その2の最後の要素番号
#x = 0;
REP:
gofiletop;
if (#x <= #BEFOREAFTER){
if (#x <= #FIRSTFLUG){
replaceallfast $BEFORE[#x],$AFTER[#x];
}
else if (#x >= #SECCONDFLUG && #x <= #BEFOREAFTER){
replaceallfast $BEFORE[#x],$AFTER[#x],regular;
}
#x = #x + 1 ;
goto REP;
}
<!-- ◆感嘆符後空白処理セクション -->
<!-- 感嘆符後空白除去処理 -->
<!-- 空白削除パターン -->
$DELSPACE[0] = "! ";
$DELSPACE[1] = "? ";
$DELSPACE[2] = "! ";
$DELSPACE[3] = "\? ";
$DELSPACE[4] = "! ";
$DELSPACE[5] = "? ";
$DELSPACE[6] = "! ";
$DELSPACE[7] = "\? ";
$DELSPACE[8] = "!! ";
$DELSPACE[9] = "!\? ";
$DELSPACE[10] = "\?! ";
$DELSPACE[11] = "\?\? ";
$DELSPACE[12] = "!! ";
$DELSPACE[13] = "!\? ";
$DELSPACE[14] = "\?! ";
$DELSPACE[15] = "\?\? ";
$DELSPACE[16] = "」 ";
#DELFLUG = 16; //空白削除パターンの最後の要素番号
#y = 0;
DEL:
gofiletop;
if(#y <= #DELFLUG){
searchdown $DELSPACE[#y];
while ( result ==true ){
right;
delete;
searchdown $DELSPACE[#y];
}
#y = #y + 1;
goto DEL;
}
<!-- 感嘆符後に空白を挿入処理 -->
<!-- 対象感嘆符パターン -->
$INSSPACE[0] = "!";
$INSSPACE[1] = "?";
$INSSPACE[2] = "!!";
$INSSPACE[3] = "!\?";
$INSSPACE[4] = "\?!";
$INSSPACE[5] = "\?\?";
#INSFLUG = 5; //対象感嘆符パターンの最後の要素番号
#z = 0;
INS: //処理
gofiletop;
if ( #z <= #INSFLUG ){
searchdown $INSSPACE[#z];
while ( result == true ){
if ( #z >= 2 ){ right; }
right;
insert " ";
searchdown $INSSPACE[#z];
}
#z = #z + 1;
goto INS;
}
#z = 0;
<!-- 台詞の最後の感嘆符の修正 -->
FIX1:
if (#z <= #INSFLUG ){
replaceallfast $INSSPACE[#z] + " 」" , $INSSPACE[#z] + "」";
#z = #z + 1;
goto FIX1;
}
#z = 0;
<!-- 閉じ括弧前の感嘆符の修正 -->
FIX2:
if (#z <= #INSFLUG ){
replaceallfast $INSSPACE[#z] + " )" , $INSSPACE[#z] + ")";
#z = #z + 1;
goto FIX2;
}
#z = 0;
<!-- 台詞の最後の感嘆符の修正(二重鍵括弧) -->
FIX3:
if (#z <= #INSFLUG ){
replaceallfast $INSSPACE[#z] + " 』" , $INSSPACE[#z] + "』";
#z = #z + 1;
goto FIX3;
}
#z = 0;
<!-- 入り括弧前の感嘆符の修正 -->
FIX4:
if (#z <= #INSFLUG ){
replaceallfast $INSSPACE[#z] + " (" , $INSSPACE[#z] + "(";
#z = #z + 1;
goto FIX4;
}
enableinvert;
enabledraw 1;