|
いつもお世話になっております。
毎回のようにお伺いさせていただくのも恐縮ではありますが、上手くいかないのでご
助言をいただきたく思います。
例文にあるような内容を,区切りで各々の順番に対応させて組み変えるのが目的です。
例文の要素は必ず,区切りになっています。
【例文】
"articles":["【開始】","「そんなわけで、今年もパーティーを開催する予定だから
","そのつもりでよろしく」","今年もこの時期がやってきた。","理由もわからない、
謎のパーティー。","いったい何を祝ってるのかはいまだに不明だけど、","例年参加
している。","【暗転】","「パーティー用のドレスやスーツは、今年も貸し出しする
んですか?」","「ええ、数に限りがあるから早いもの順だけど」"],
"characters":[[show-bg][play-voice]["0"],["1"],["2"],["3"],["4"],["5"],["6"],
[play-voice]["7"],["8"],[play-voice]["9"]],
【求める結果】
"【開始】",[show-bg][play-voice]["0"]
"「そんなわけで、今年もパーティーを開催する予定だから",["1"]
"そのつもりでよろしく」",["2"]
"今年もこの時期がやってきた。",["3"]
"理由もわからない、謎のパーティー。",["4"]
"いったい何を祝ってるのかはいまだに不明だけど、",["5"]
"例年参加している。",["6"]
"【暗転】",[play-voice]["7"]
"「パーティー用のドレスやスーツは、今年も貸し出しするんですか?」",["8"]
"「ええ、数に限りがあるから早いもの順だけど」"[play-voice]["9"]
【現在の結果】
●DATA1
"articles":[
"【開始】",
「そんなわけで、今年もパーティーを開催する予定だから",
そのつもりでよろしく」",
今年もこの時期がやってきた。",
理由もわからない、謎のパーティー。",
いったい何を祝ってるのかはいまだに不明だけど、",
例年参加している。",
【暗転】",
「パーティー用のドレスやスーツは、今年も貸し出しするんですか?」",
「ええ、数に限りがあるから早いもの順だけど」",
"[show-bg][play-voice]["0"]"
"["1"]"
"["2"]"
"["3"]"
"["4"]"
"["5"]"
"["6"]"
"[play-voice]["7"]"
"["8"]"
"[play-voice]["9"]"
【マクロ】
setcompatiblemode 0x00020000;
loaddll "hmjre.dll"; // HmJre.dll のロード ※2
disabledraw;
begingroupundo;//一撃で元に戻すためにグループ化
//並べ替えマクロ
//--------------------------------------
gofiletop;
#i = 0;
while( 1 )
{
searchdown2 "\"articles\":\\[.+?\\]", regular;
if( !result ) break; // while() ループの終了
$art[#i] = gettext( foundtopx, foundtopy, foundendx, foundendy );
//message "Article Data: " + $art[#i];
searchdown2 "(?\\2)(\"characters\":\\[)(.+?\\])(\\],)", regular;
if( !result ) { message "\"characters\":が見つかりません"; goto END; }
$cha[#i] = gettext( foundtopx, foundtopy, foundendx, foundendy );
//message "Character Data: " + $cha[#i];
#i = #i + 1;
}
#data_cnt = #i; // テキストデータの総数を格納
gofileend;
#i = 0;
while( #i < #data_cnt )
{
//「,」を区切り文字としてデータを分割し配列に格納 ※3
#c1 = split( $c, $cha[#i], "," );
// 見出しを追加
$s = "\n●DATA" + str( #i + 1 ) + "\n";
//整形
$s = $s + "\"" + $art[#i] + "\",\n";
$s = dllfuncstr( "ReplaceRegular", "\\[", $s, 0, "\\[\n", 2 );
$s = dllfuncstr( "ReplaceRegular", ",\"", $s, 0, "\",\n", 2 );
#j = 0;
while( #j < #c1 )
{
// データの並び替え
$s = $s + "\"" + $c[#j] + "\"\n";
#j = #j + 1;
}
//「""」を「"」に置換
$s = dllfuncstr( "ReplaceRegular", "\"\"", $s, 0, "\"", 2 );
// データの書き込み
insert $s;
#i = #i + 1;
}
END:
//--------------------------------------
endgroupundo;
endmacro;
|
|