|
回答 ありがとう御座います。
//--------------------------------------------------------//
replaceallfast "\\f[0-9]{4}\\f", "\\(\\1\\)", regular,fuzzy;
replaceallfast "[〈<]", "(", regular;
replaceallfast "[〉>]", ")", regular;
disabledraw;
gofiletop;
while( 1 ) {
searchdown2 "[((][0-9]{4}[\\))]", regular,fuzzy;
if( !result ) break;
$brand[#i] = gettext( foundtopx, foundtopy, foundendx, foundendy );
moveto foundendx, foundendy;
#i = #i + 1;
}
newfile;
while( #j < #i ) {
insert $brand[#j] + "\n";
#j = #j + 1;
}
replaceallfast "[()()]", "", regular;
endmacro;
//--------------------------------------------------------//
上記マクロの実行結果です。
レーティング
ライオン(4912)大和が「4」から「3」格上げ
フジテレビ(4676)メリルが「中立」から「売り」格下げ
GMO(9449)リーマンが「オーバーW」から「イコールW」格上げ
4912
4676
9449
これを手動で半角に変換しています。
山紫水明さんのマクロを参考に、半角変換マクロを検討していますが、
よく分かりません。
//--------- ZenhanDaisho.mac -----------------------------------//
//
// 全角半角大小文字変換マクロ Ver.4.4
// 山紫水明
// 説明テキストをお読み下さい
//// ○オプション○ //////////////////////////////////////////
#save = 1; //実行前に保存の確認をする---「1」,しない---「0」
#conf = 1; //最後に確認をする---「1」,確認しない---「0」
///////////////////////////////////////////////////////////////
if( #save && updated ) {
question "ファイルが更新されています。\nいったん保存しますか?";
if( result == yes ) save;
}
call Save_search;
disabledraw;
if( !selecting ) {
disableinvert;
question "全文で変換しますか?";
if( !result ) endmacro;
else selectall;
}
if( rectselecting ) #rectsel = 1;//BOX 範囲選択の場合
#bx = seltopx; #by = seltopy;
#ex = selendx; #ey = selendy;
#rs = 1; //BOX 選択で範囲の内外の判定フラグ
#ec = 0; //実行回数記録用
Mojimenu:
menu " 文 字 の 変 換",
"A) 英字大文字に",
"B) 英字小文字に",
"【全角に変換】",
"C) 英 数 字",
"D) 英 字",
"E) 数 字",
"F) カタカナ",
"【半角に変換】",
"G) 英 数 字",
"H) 英 字",
"J) 数 字",
"K) カタカナ";
#r = result;
escape;
moveto #ex, #ey;
if(#r == 0) endmacro;
else if(#r == 1 ||#r == 4 || #r == 9) goto Mojimenu;
else if(#r == 2) $replace = "[a-za-z]";
else if(#r == 3) $replace = "[A-ZA-Z]";
else if(#r == 5) $replace = "[A-Za-z0-9,.]";
else if(#r == 6) $replace = "[A-Za-z,.]";
else if(#r == 7) $replace = "[0-9,.]";
else if(#r == 8) $replace = "[ヲ-゚]";
else if(#r == 10) $replace = "[A-Za-z0-9,.]";
else if(#r == 11) $replace = "[A-Za-z,.]";
else if(#r == 12) $replace = "[0-9,.]";
else if(#r == 13) $replace = "[ァ-ヶー゛゜]";
if( #r == 2 ) call ToCapital;
else if( #r == 3 ) call ToSmall;
else if( #r > 4 && #r < 9 ) call ToZenkaku;
else if( #r > 9 && #r <= 13 ) call ToHankaku;
escape;
moveto #ex, #ey;
redraw;
call Reset_search;
enabledraw;
if( #conf ) {
question "確定しますか?";
if( !result ) {
disabledraw;
while( #ec ) {
undo;
#ec = #ec - 1;
}
enabledraw;
}
}
//実行結果をクリップボードに記録(Undo用)
setclipboard "ZenhanDaisho.mac" + "\x0d\x0a";
addclipboard str(#ec);
endmacro;
ToCapital:
while(1){
searchup $replace, regular;//
if( result == 0 || y < #by || (y == #by && x < #bx) ) break;
if( #rectsel ) call RectSel;
if( #rs ) toupper;
#ec = #ec + 1;
escape;
}
return;
ToSmall:
while(1){
searchup $replace, regular;//
if( result == 0 || y < #by || (y == #by && x < #bx) ) break;
if( #rectsel ) call RectSel;
if( #rs ) tolower;
#ec = #ec + 1;
escape;
}
return;
ToZenkaku:
while(1){
searchup $replace, regular;
if( result == 0 || y < #by || (y == #by && x < #bx) ) break;
if( #rectsel ) call RectSel;
if( #rs && ( code == '゙' || code == '゚' ) ) { //併せて1字として扱う
escape; left; beginsel; right; right;
}
if( #rs ) tozenkakukata;
#ec = #ec + 1;
escape;
}
return;
ToHankaku:
while(1){
searchup $replace, regular;//
if( result == 0 || y < #by || (y == #by && x < #bx) ) break;
if( #rectsel ) call RectSel;
if( #rs ) tohankaku;
#ec = #ec + 1;
escape;
}
return;
RectSel:
if( x >= #bx && x < #ex ) #rs = 1;
else #rs = 0;
return;
Save_search: //検索状態を保存・変更
$sb = searchbuffer;
#so = searchoption;
if ( !searchmode ) { // 検索状態を範囲選択に変更
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "SelectFound",1;
#modechange = 1;
envchanged;
closereg;
}
return;
Reset_search: //検索状態を元に戻す
if ( #modechange ) {
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "SelectFound",#s_mode;
envchanged;
closereg;
}
setsearch $sb, #so;
return;
//----------------------------------------------------------------//
|
|