|
tackです、いつもお世話になっております。
先の投稿は間違えていた部分があり削除をしております、掲示板を汚してしまい申し
訳ありません。
自分でタイトルの表現に悩んでしまったため上手く説明できるか怪しいのですが以下
の内容を検索、置換するようなことは秀丸マクロでできるのかお教えください。
会話内容が記載されたスクリプトのようなテキストファイルが対象です。
条件として必ずあるのが、セリフの始まりには必ず
name,<outline>名前</outline>, の行が存在し、
連続するセリフとなる場合に限りname,<outline>太郎</outline>,が省略されます。
セリフの場合、msg,1,と表記され、セリフじゃない場合はmsg,0,となります。
またセリフの際のボイスを指定する内容はキャラクタ名ごとにボイスデータを仕分け
てもいないため、検索に利用できなさそうだな、と感じました。
実際に行いたい内容はmsg,1,の後ろに発言者の名前を挿入したいのです。(変換後の
文章が理想)
最後の行近辺のようにイメージが挿入される構文が無ければ一纏めで検索して、置換
も出来ると思いましたが、イメージの構文を消したくないので難しく。
※元の文章は2名で会話していますが、最大3名の文章があると想定してマクロは組
み進めています。なので3名の検索・挿入もしくは置換ができ、1名や2名の場合で
もエラーが起きないのが理想です。
元の文章
--------------------------------------------------------------
name,<outline>太郎</outline>,
playvoice,1,character/voice_01
msg,1,<outline>「おはよう」</outline>,
name,<outline>花子</outline>,
playvoice,1,character/voice_02
msg,1,<outline>「おはよう」</outline>,
name,<outline>太郎</outline>,
playvoice,1,character/voice_03
msg,1,<outline>「今日はいい天気だね」</outline>,
name,
msg,0,<outline>太郎は朗らかに挨拶した。</outline>,
name,<outline>太郎</outline>,
playvoice,1,character/voice_04
msg,1,<outline>「そういえばテスト勉強した?」</outline>,
playvoice,1,character/voice_05
msg,1,<outline>「僕はしっかり勉強できて自信があるんだ」</outline>,
name,<outline>花子</outline>,
playvoice,1,character/voice_06
msg,1,<outline>「自信はないかな」</outline>,
playvoice,1,character/voice_07
msg,1,<outline>「でも頑張るつもり」</outline>,
wait,,,,,,,,,,,
bg,download/character/100
playvoice,1,character/voice_08
msg,1,<outline>「お互い頑張ろうね!」</outline>,
--------------------------------------------------------------
変換後の文章
--------------------------------------------------------------
name,<outline>太郎</outline>,
playvoice,1,character/voice_01
msg,1,<outline>太郎「おはよう」</outline>,
name,<outline>花子</outline>,
playvoice,1,character/voice_02
msg,1,<outline>花子「おはよう」</outline>,
name,<outline>太郎</outline>,
playvoice,1,character/voice_03
msg,1,<outline>太郎「今日はいい天気だね」</outline>,
name,
msg,0,<outline>太郎は朗らかに挨拶した。</outline>,
name,<outline>太郎</outline>,
playvoice,1,character/voice_04
msg,1,<outline>太郎「そういえばテスト勉強した?」</outline>,
playvoice,1,character/voice_05
msg,1,<outline>太郎「僕はしっかり勉強できて自信があるんだ」</outline>,
name,<outline>花子</outline>,
playvoice,1,character/voice_06
msg,1,<outline>花子「自信はないかなー」</outline>,
playvoice,1,character/voice_07
msg,1,<outline>花子「でも頑張るつもり」</outline>,
wait,,,,,,,,,,,
bg,download/character/100
playvoice,1,character/voice_08
msg,1,<outline>花子「お互い頑張ろうね!」</outline>,
--------------------------------------------------------------
マクロの氏名を取得する部分は考えたのですが、該当部分に挿入までが思いつかず上
手く進みません。(以下は氏名検索まで)
--------------------------------------------------------------
setcompatiblemode 0x00020000;
// 一撃でもとへと戻せるようにグループ
begingroupundo;
gofiletop;
$a = ""; // Aの氏名を保存する変数
$b = ""; // Bの氏名を保存する変数
$c = ""; // Cの氏名を保存する変数
while (1) {
searchdown2 "(?<=name,<outline width=2 color=black>).*?(?=</outline>)",
regular; // 氏名を検索
if (!result) break;
$name = gettext(foundtopx, foundtopy, foundendx, foundendy); // 検索結果
から氏名を取得
right;
// 同じ氏名が既に取得されている場合はスキップ
if ($name == $a || $name == $b || $name == $c) continue;
if ($a == "") {
$a = $name; // $aにAの氏名を保存
} else if ($b == "") {
$b = $name; // $bにBの氏名を保存
} else if ($c == "") {
$c = $name; // $cにCの氏名を保存
}
}
message $a;
message $b;
message $c;
--------------------------------------------------------------
と作成途中で止まってしまっています、ご教授いただけましたら幸いです。
|
|