//******************************************************************** // お手伝いマクロ−語り部通信編集規約に修正(秀丸用) // 『編集君』 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] = " :"; #BEFOREAFTER = 21; //最終の要素番号 #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] = "\?\? "; #DELFLUG = 15; //空白削除パターンの最後の要素番号 #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;