home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2002 April
/
VPR0204A.ISO
/
OLS
/
GREP109
/
grep109.lzh
/
searchEx
/
grepExMenu.mac
< prev
next >
Wrap
Text File
|
2001-10-03
|
10KB
|
317 lines
//拡張 grep の menu による設定
$ini = macrodir + "\\searchEx\\searchEx.ini";
$search = getinistr($ini,"SEARCH","string");
$directory = getinistr($ini,"SEARCH","directory");
$file = getinistr($ini,"SEARCH","file");
#otherOption = getininum($ini,"SEARCH","otherOption");
#joint = getininum($ini,"SEARCH","joint");
#extension = getininum($ini,"SEARCH","extension");
$block = getinistr($ini,"SEARCH","block");
#pre = getininum($ini,"SEARCH","pre");
#after = getininum($ini,"SEARCH","after");
#lineTag = getininum($ini,"SEARCH","lineTag");
call Menu;
if(#extension)#option = #option|64;
writeininum $ini,"SEARCH","option",#option;
writeininum $ini,"SEARCH","otherOption",#otherOption;
writeininum $ini,"SEARCH","extension",#extension;
writeinistr $ini,"SEARCH","block","\"" + $block + "\"";
writeininum $ini,"SEARCH","pre",#pre;
writeininum $ini,"SEARCH","after",#after;
writeininum $ini,"SEARCH","lineTag",#lineTag;
writeinistr $ini,"SEARCH","string","\"" + $search + "\"";
writeinistr $ini,"SEARCH","directory","\"" + $directory + "\"";
writeinistr $ini,"SEARCH","file","\"" + $file + "\"";
writeininum $ini,"SEARCH","joint",#joint;
endmacro;
Menu:
$menu[0] = "(&S)検索文字列\t│" + $search;
$menu[1] = "(&D)検索フォルダ\t│" + $directory;
$menu[2] = "(&N)検索ファイル\t│" + $file;
if( searchoption&2 ){
$menu[3] = "(&C)大文字/小文字の区別\t│ON";
#option = #option|2;
}
else $menu[3] = "(&C)大文字/小文字の区別\t│OFF";
if( searchoption&1 ){
$menu[4] = "(&W)単語検索\t│ON";
#option = #option|1;
}
else $menu[4] = "(&W)単語検索\t│OFF";
if( searchoption&32 ){
$menu[6] = "(&F)あいまい検索\t│ON";
call RegON;
#option = #option|48;
}
else{
$menu[6] = "(&F)あいまい検索\t│OFF";
if( searchoption&16 ){
call RegON;
#option = #option|16;
}
else $menu[5] = "(&R)正規表現\t│OFF";
}
if( #otherOption&1 )$menu[7] = "(&U)サブディレクトリも検索\t|ON";
else $menu[7] = "(&U)サブディレクトリも検索\t|OFF";
if( searchoption&64 ){
$menu[8] = "(&O)ファイル名一覧だけ作成\t│ON";
#option = #option|64;
}
else $menu[8] = "(&O)ファイル名一覧だけ作成\t│OFF";
if( #otherOption&2 )$menu[9] = "(&P)ファイル名をフルパスで出力\t|ON";
else $menu[9] = "(&P)ファイル名をフルパスで出力\t|OFF";
if( #otherOption&4 ){
$menu[10] = "(&J)文字の無視\t|ON";
$menu[11] = "(&1)無視する文字\t|" + getinistr($ini,"STRING",str(#joint - 1));
call RegON;
}
else{
$menu[10] = "(&J)文字の無視\t|OFF";
$menu[11] = "(&1)無視する文字\t|---";
}
if(#extension == 0){
$menu[12] = "(&E)拡張\t|OFF";
$menu[13] = "";
$menu[14] = "";
}
else{
$menu[8] = "(&O)ファイル名一覧だけ作成\t|---";
if(#extension == 1){
$menu[12] = "(&E)拡張\t|ブロック";
$menu[13] = "(&K)ブロックの種類\t|" + $block;
$menu[14] = "";
$menu[15] = "";
}
else if(#extension == 2){
$menu[12] = "(&E)拡張\t|前後行出力";
$menu[13] = "(&B)前後の出力行 (前 : 後)\t|" + str(#pre) + " : " + str(#after);
if(#lineTag == 0){
$menu[14] = "(&G)強調行の出力\t|しない";
$menu[15] = "";
}
else{
if(#lineTag == 1)$menu[14] = "(&G)強調行の出力\t|ヒットしたブロックの強調行";
if(#lineTag == 2)$menu[14] = "(&G)強調行の出力\t|強調行1の追加出力";
$menu[15] = "(&K)ブロックの種類\t|" + $block;
}
}
}
$menu[16] = "(&A)実行";
$menu[17] = "(&Q)マクロ終了";
#saveOption = 128;
while(1){
menuarray $menu,17;
if(result == 0 || result == 18)endmacroall;
else if(result == 1){
$tmp = input("検索文字列は?",$search);
if(result == 0)continue;
while($tmp == "")$tmp = input("検索文字列は?",$tmp);
if(result){
$search = $tmp;
$menu[0] = "(&S)検索文字列\t│" + $search;
}
}
else if(result == 2){
$tmp = input("検索フォルダは?",$directory);
if(result == 0)continue;
while($tmp == "")$tmp = input("検索フォルダは?",$tmp);
if(result){
$directory = $tmp;
$menu[1] = "(&D)検索フォルダ\t│" + $directory;
}
}
else if(result == 3){
$tmp = input("検索ファイルは?",$file);
if(result == 0)continue;
while($tmp == "")$tmp = input("検索ファイルは?",$tmp);
if(result){
$file = $tmp;
$menu[2] = "(&N)検索ファイル\t│" + $file;
}
}
else if(result == 4){
if( #option&16 )continue;
#option = #option^2;
if( #option&2 ){
$menu[3] = "(&C)大文字/小文字の区別\t│ON";
#option = #option|2;
}
else $menu[3] = "(&C)大文字/小文字の区別\t│OFF";
}
else if(result == 5){
if( #option&16 )continue;
#option = #option^1;
if( #option&1 ){
$menu[4] = "(&W)単語検索\t│ON";
#option = #option|1;
}
else $menu[4] = "(&W)単語検索\t│OFF";
}
else if(result == 6){
#option = #option^16;
if( #option&16 )call RegON;
else{
if( #option&2 )$menu[3] = "(&C)大文字/小文字の区別\t│ON";
else $menu[3] = "(&C)大文字/小文字の区別\t│OFF";
if( #option&1 )$menu[4] = "(&W)単語検索\t│ON";
else $menu[4] = "(&W)単語検索\t│OFF";
$menu[5] = "(&R)正規表現\t│OFF";
$menu[6] = "(&F)あいまい検索\t│OFF";
$menu[10] = "(&J)文字の無視\t|OFF";
$menu[11] = "(&1)無視する文字\t|---";
#otherOption = #otherOption^4;
}
}
else if(result == 7){
#option = #option^32;
if( #option&32 ){
call RegON;
$menu[6] = "(&F)あいまい検索\t│ON";
#option = #option|32;
}
else $menu[6] = "(&F)あいまい検索\t│OFF";
}
else if(result == 8){
#otherOption = #otherOption^1;
if( #otherOption&1 ){
$menu[7] = "(&U)サブディレクトリも検索\t|ON";
#otherOption = #otherOption|1;
}
else $menu[7] = "(&U)サブディレクトリも検索\t|OFF";
}
else if(result == 9){
if(!#extension){
#option = #option^64;
if( #option&64 ){
$menu[8] = "(&O)ファイル名一覧だけ作成\t|ON";
#option = #option|64;
}
else $menu[8] = "(&O)ファイル名一覧だけ作成\t|OFF";
}
}
else if(result == 10){
#otherOption = #otherOption^2;
if( #otherOption&2 ){
$menu[9] = "(&P)ファイル名をフルパスで出力\t|ON";
#otherOption = #otherOption|2;
}
else $menu[9] = "(&P)ファイル名をフルパスで出力\t|OFF";
}
else if(result == 11){
#otherOption = #otherOption^4;
if( #otherOption&4 ){
$menu[10] = "(&J)文字の無視\t|ON";
$menu[11] = "(&1)無視する文字\t|" + getinistr($ini,"STRING",str(#joint - 1));
#otherOption = #otherOption|4;
call RegON;
}
else{
$menu[10] = "(&J)文字の無視\t|OFF";
$menu[11] = "(&1)無視する文字\t|---";
}
}
else if(result == 12){
if( #otherOption&4 ){
execmacro macrodir + "\\searchEx\\string.mac";
#joint = getininum($ini,"SEARCH","joint");
$menu[11] = "(&1)無視する文字\t|" + getinistr($ini,"STRING",str(#joint - 1));
}
}
else if(result == 13){
if(#extension == 2){
$menu[12] = "(&E)拡張\t|OFF";
$menu[13] = "";
$menu[14] = "";
$menu[15] = "";
if( #option&64 )$menu[8] = "(&O)ファイル名一覧だけ作成\t|ON";
else $menu[8] = "(&O)ファイル名一覧だけ作成\t|OFF";
#extension = 0;
}
else if(#extension == 0){
$menu[12] = "(&E)拡張\t|ブロック";
$menu[13] = "(&K)ブロックの種類\t|" + $block;
$menu[14] = "";
$menu[15] = "";
$menu[8] = "(&O)ファイル名一覧だけ作成\t|---";
#extension = 1;
}
else if(#extension == 1){
$menu[12] = "(&E)拡張\t|前後行出力";
$menu[13] = "(&B)前後の出力行 (前 : 後)\t|" + str(#pre) + " : " + str(#after);
if(#lineTag == 0){
$menu[14] = "(&G)強調行の出力\t|しない";
$menu[15] = "";
}
else{
if(#lineTag == 1)$menu[14] = "(&G)強調行の出力\t|ヒットしたブロックの強調行";
if(#lineTag == 2)$menu[14] = "(&G)強調行の出力\t|強調行1の追加出力";
$menu[15] = "(&K)ブロックの種類\t|" + $block;
}
#extension = 2;
}
}
else if(result == 14){
if(#extension == 1){
##main = hidemaruhandle(0);
openfile hidemarudir + "\\*.hilight";
if(##main == hidemaruhandle(0))$block = "(自動)";
else{
##open = hidemaruhandle(0);
$block = rightstr(filename2,strlen(filename) - strlen(hidemarudir) - 1);
setactivehidemaru ##main;
closehidemaru ##open;
}
$menu[13] = "(&K)ブロックの種類\t|" + $block;
}
else if(#extension == 2){
#pre = val(input("ヒットした行の前何行まで出力しますか?",str(#pre)));
#after = val(input("ヒットした行の後何行まで出力しますか?",str(#after)));
$menu[13] = "(&B)前後の出力行 (前 : 後)\t|" + str(#pre) + " : " + str(#after);
if(#lineTag == 0){
$menu[14] = "(&G)強調行の出力\t|しない";
$menu[15] = "";
}
else{
if(#lineTag == 1)$menu[14] = "(&G)強調行の出力\t|ヒットしたブロックの強調行";
if(#lineTag == 2)$menu[14] = "(&G)強調行の出力\t|強調行1の追加出力";
$menu[15] = "(&K)ブロックの種類\t|" + $block;
}
}
}
else if(result == 15){
if(#extension == 1){
$menu[14] = "";
}
else if(#extension == 2){
if(#lineTag == 2){
$menu[14] = "(&G)強調行の出力\t|しない";
$menu[15] = "";
#lineTag = 0;
}
else{
if(#lineTag == 0)$menu[14] = "(&G)強調行の出力\t|ヒットしたブロックの強調行";
if(#lineTag == 1)$menu[14] = "(&G)強調行の出力\t|強調行1の追加出力";
$menu[15] = "(&K)ブロックの種類\t|" + $block;
#lineTag = #lineTag + 1;
}
}
}
else if(result == 16){
if(#extension == 2){
call BlockKind 11;
#block = ##return;
$menu[15] = "(&K)ブロックの種類\t|" + $block;
}
}
else if(result == 17)return;
}
RegON:
$menu[3] = "(&C)大文字/小文字の区別\t│---";
$menu[4] = "(&W)単語検索\t│---";
$menu[5] = "(&R)正規表現\t│ON";
#option = #option|16;
return;