home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2002 April / VPR0204A.ISO / OLS / GREP109 / grep109.lzh / searchEx / grepExMenu.mac < prev    next >
Text File  |  2001-10-03  |  10KB  |  317 lines

  1. //拡張 grep の menu による設定
  2.     $ini = macrodir + "\\searchEx\\searchEx.ini";
  3.     $search = getinistr($ini,"SEARCH","string");
  4.     $directory = getinistr($ini,"SEARCH","directory");
  5.     $file = getinistr($ini,"SEARCH","file");
  6.     #otherOption = getininum($ini,"SEARCH","otherOption");
  7.     #joint = getininum($ini,"SEARCH","joint");
  8.     #extension = getininum($ini,"SEARCH","extension");
  9.     $block = getinistr($ini,"SEARCH","block");
  10.     #pre = getininum($ini,"SEARCH","pre");
  11.     #after = getininum($ini,"SEARCH","after");
  12.     #lineTag = getininum($ini,"SEARCH","lineTag");
  13.     call Menu;
  14.     if(#extension)#option = #option|64;
  15.     writeininum $ini,"SEARCH","option",#option;
  16.     writeininum $ini,"SEARCH","otherOption",#otherOption;
  17.     writeininum $ini,"SEARCH","extension",#extension;
  18.     writeinistr $ini,"SEARCH","block","\"" + $block + "\"";
  19.     writeininum $ini,"SEARCH","pre",#pre;
  20.     writeininum $ini,"SEARCH","after",#after;
  21.     writeininum $ini,"SEARCH","lineTag",#lineTag;
  22.     writeinistr $ini,"SEARCH","string","\"" + $search + "\"";
  23.     writeinistr $ini,"SEARCH","directory","\"" + $directory + "\"";
  24.     writeinistr $ini,"SEARCH","file","\"" + $file + "\"";
  25.     writeininum $ini,"SEARCH","joint",#joint;
  26.     endmacro;
  27.  
  28. Menu:
  29.     $menu[0] = "(&S)検索文字列\t│" + $search;
  30.     $menu[1] = "(&D)検索フォルダ\t│" + $directory;
  31.     $menu[2] = "(&N)検索ファイル\t│" + $file;
  32.     if( searchoption&2 ){
  33.         $menu[3] = "(&C)大文字/小文字の区別\t│ON";
  34.         #option = #option|2;
  35.     }
  36.     else $menu[3] = "(&C)大文字/小文字の区別\t│OFF";
  37.     if( searchoption&1 ){
  38.         $menu[4] = "(&W)単語検索\t│ON";
  39.         #option = #option|1;
  40.     }
  41.     else $menu[4] = "(&W)単語検索\t│OFF";
  42.     if( searchoption&32 ){
  43.         $menu[6] = "(&F)あいまい検索\t│ON";
  44.         call RegON;
  45.         #option = #option|48;
  46.     }
  47.     else{
  48.         $menu[6] = "(&F)あいまい検索\t│OFF";
  49.         if( searchoption&16 ){
  50.             call RegON;
  51.             #option = #option|16;
  52.         }
  53.         else $menu[5] = "(&R)正規表現\t│OFF";
  54.     }
  55.     if( #otherOption&1 )$menu[7] = "(&U)サブディレクトリも検索\t|ON";
  56.     else $menu[7] = "(&U)サブディレクトリも検索\t|OFF";
  57.     if( searchoption&64 ){
  58.         $menu[8] = "(&O)ファイル名一覧だけ作成\t│ON";
  59.         #option = #option|64;
  60.     }
  61.     else $menu[8] = "(&O)ファイル名一覧だけ作成\t│OFF";
  62.     if( #otherOption&2 )$menu[9] = "(&P)ファイル名をフルパスで出力\t|ON";
  63.     else $menu[9] = "(&P)ファイル名をフルパスで出力\t|OFF";
  64.     if( #otherOption&4 ){
  65.         $menu[10] = "(&J)文字の無視\t|ON";
  66.         $menu[11] = "(&1)無視する文字\t|" + getinistr($ini,"STRING",str(#joint - 1));
  67.         call RegON;
  68.     }
  69.     else{
  70.         $menu[10] = "(&J)文字の無視\t|OFF";
  71.         $menu[11] = "(&1)無視する文字\t|---";
  72.     }
  73.     if(#extension == 0){
  74.         $menu[12] = "(&E)拡張\t|OFF";
  75.         $menu[13] = "";
  76.         $menu[14] = "";
  77.     }
  78.     else{
  79.         $menu[8] = "(&O)ファイル名一覧だけ作成\t|---";
  80.         if(#extension == 1){
  81.             $menu[12] = "(&E)拡張\t|ブロック";
  82.             $menu[13] = "(&K)ブロックの種類\t|" + $block;
  83.             $menu[14] = "";
  84.             $menu[15] = "";
  85.         }
  86.         else if(#extension == 2){
  87.             $menu[12] = "(&E)拡張\t|前後行出力";
  88.             $menu[13] = "(&B)前後の出力行 (前 : 後)\t|" + str(#pre) + " : " + str(#after);
  89.             if(#lineTag == 0){
  90.                 $menu[14] = "(&G)強調行の出力\t|しない";
  91.                 $menu[15] = "";
  92.             }
  93.             else{
  94.                 if(#lineTag == 1)$menu[14] = "(&G)強調行の出力\t|ヒットしたブロックの強調行";
  95.                 if(#lineTag == 2)$menu[14] = "(&G)強調行の出力\t|強調行1の追加出力";
  96.                 $menu[15] = "(&K)ブロックの種類\t|" + $block;
  97.             }
  98.         }
  99.     }
  100.     $menu[16] = "(&A)実行";
  101.     $menu[17] = "(&Q)マクロ終了";
  102.  
  103.     #saveOption = 128;
  104.     while(1){
  105.         menuarray $menu,17;
  106.         if(result == 0 || result == 18)endmacroall;
  107.         else if(result == 1){
  108.             $tmp = input("検索文字列は?",$search);
  109.             if(result == 0)continue;
  110.             while($tmp == "")$tmp = input("検索文字列は?",$tmp);
  111.             if(result){
  112.                 $search = $tmp;
  113.                 $menu[0] = "(&S)検索文字列\t│" + $search;
  114.             }
  115.         }
  116.         else if(result == 2){
  117.             $tmp = input("検索フォルダは?",$directory);
  118.             if(result == 0)continue;
  119.             while($tmp == "")$tmp = input("検索フォルダは?",$tmp);
  120.             if(result){
  121.                 $directory = $tmp;
  122.                 $menu[1] = "(&D)検索フォルダ\t│" + $directory;
  123.             }
  124.         }
  125.         else if(result == 3){
  126.             $tmp = input("検索ファイルは?",$file);
  127.             if(result == 0)continue;
  128.             while($tmp == "")$tmp = input("検索ファイルは?",$tmp);
  129.             if(result){
  130.                 $file = $tmp;
  131.                 $menu[2] = "(&N)検索ファイル\t│" + $file;
  132.             }
  133.         }
  134.         else if(result == 4){
  135.             if( #option&16 )continue;
  136.             #option = #option^2;
  137.             if( #option&2 ){
  138.                 $menu[3] = "(&C)大文字/小文字の区別\t│ON";
  139.                 #option = #option|2;
  140.             }
  141.             else $menu[3] = "(&C)大文字/小文字の区別\t│OFF";
  142.         }
  143.         else if(result == 5){
  144.             if( #option&16 )continue;
  145.             #option = #option^1;
  146.             if( #option&1 ){
  147.                 $menu[4] = "(&W)単語検索\t│ON";
  148.                 #option = #option|1;
  149.             }
  150.             else $menu[4] = "(&W)単語検索\t│OFF";
  151.         }
  152.         else if(result == 6){
  153.             #option = #option^16;
  154.             if( #option&16 )call RegON;
  155.             else{
  156.                 if( #option&2 )$menu[3] = "(&C)大文字/小文字の区別\t│ON";
  157.                 else $menu[3] = "(&C)大文字/小文字の区別\t│OFF";
  158.                 if( #option&1 )$menu[4] = "(&W)単語検索\t│ON";
  159.                 else $menu[4] = "(&W)単語検索\t│OFF";
  160.                 $menu[5] = "(&R)正規表現\t│OFF";
  161.                 $menu[6] = "(&F)あいまい検索\t│OFF";
  162.                 $menu[10] = "(&J)文字の無視\t|OFF";
  163.                 $menu[11] = "(&1)無視する文字\t|---";
  164.                 #otherOption = #otherOption^4;
  165.             }
  166.         }
  167.         else if(result == 7){
  168.             #option = #option^32;
  169.             if( #option&32 ){
  170.                 call RegON;
  171.                 $menu[6] = "(&F)あいまい検索\t│ON";
  172.                 #option = #option|32;
  173.             }
  174.             else $menu[6] = "(&F)あいまい検索\t│OFF";
  175.         }
  176.         else if(result == 8){
  177.             #otherOption = #otherOption^1;
  178.             if( #otherOption&1 ){
  179.                 $menu[7] = "(&U)サブディレクトリも検索\t|ON";
  180.                 #otherOption = #otherOption|1;
  181.             }
  182.             else $menu[7] = "(&U)サブディレクトリも検索\t|OFF";
  183.         }
  184.         else if(result == 9){
  185.             if(!#extension){
  186.                 #option = #option^64;
  187.                 if( #option&64 ){
  188.                     $menu[8] = "(&O)ファイル名一覧だけ作成\t|ON";
  189.                     #option = #option|64;
  190.                 }
  191.                 else $menu[8] = "(&O)ファイル名一覧だけ作成\t|OFF";
  192.             }
  193.         }
  194.         else if(result == 10){
  195.             #otherOption = #otherOption^2;
  196.             if( #otherOption&2 ){
  197.                 $menu[9] = "(&P)ファイル名をフルパスで出力\t|ON";
  198.                 #otherOption = #otherOption|2;
  199.             }
  200.             else $menu[9] = "(&P)ファイル名をフルパスで出力\t|OFF";
  201.         }
  202.         else if(result == 11){
  203.             #otherOption = #otherOption^4;
  204.             if( #otherOption&4 ){
  205.                 $menu[10] = "(&J)文字の無視\t|ON";
  206.                 $menu[11] = "(&1)無視する文字\t|" + getinistr($ini,"STRING",str(#joint - 1));
  207.                 #otherOption = #otherOption|4;
  208.                 call RegON;
  209.             }
  210.             else{
  211.                 $menu[10] = "(&J)文字の無視\t|OFF";
  212.                 $menu[11] = "(&1)無視する文字\t|---";
  213.             }
  214.         }
  215.         else if(result == 12){
  216.             if( #otherOption&4 ){
  217.                 execmacro macrodir + "\\searchEx\\string.mac";
  218.                 #joint = getininum($ini,"SEARCH","joint");
  219.                 $menu[11] = "(&1)無視する文字\t|" + getinistr($ini,"STRING",str(#joint - 1));
  220.             }
  221.         }
  222.         else if(result == 13){
  223.             if(#extension == 2){
  224.                 $menu[12] = "(&E)拡張\t|OFF";
  225.                 $menu[13] = "";
  226.                 $menu[14] = "";
  227.                 $menu[15] = "";
  228.                 if( #option&64 )$menu[8] = "(&O)ファイル名一覧だけ作成\t|ON";
  229.                 else $menu[8] = "(&O)ファイル名一覧だけ作成\t|OFF";
  230.                 #extension = 0;
  231.             }
  232.             else if(#extension == 0){
  233.                 $menu[12] = "(&E)拡張\t|ブロック";
  234.                 $menu[13] = "(&K)ブロックの種類\t|" + $block;
  235.                 $menu[14] = "";
  236.                 $menu[15] = "";
  237.                 $menu[8] = "(&O)ファイル名一覧だけ作成\t|---";
  238.                 #extension = 1;
  239.             }
  240.             else if(#extension == 1){
  241.                 $menu[12] = "(&E)拡張\t|前後行出力";
  242.                 $menu[13] = "(&B)前後の出力行 (前 : 後)\t|" + str(#pre) + " : " + str(#after);
  243.                 if(#lineTag == 0){
  244.                     $menu[14] = "(&G)強調行の出力\t|しない";
  245.                     $menu[15] = "";
  246.                 }
  247.                 else{
  248.                     if(#lineTag == 1)$menu[14] = "(&G)強調行の出力\t|ヒットしたブロックの強調行";
  249.                     if(#lineTag == 2)$menu[14] = "(&G)強調行の出力\t|強調行1の追加出力";
  250.                     $menu[15] = "(&K)ブロックの種類\t|" + $block;
  251.                 }
  252.                 #extension = 2;
  253.             }
  254.         }
  255.         else if(result == 14){
  256.             if(#extension == 1){
  257.                 ##main = hidemaruhandle(0);
  258.                 openfile hidemarudir + "\\*.hilight";
  259.                 if(##main == hidemaruhandle(0))$block = "(自動)";
  260.                 else{
  261.                     ##open = hidemaruhandle(0);
  262.                     $block = rightstr(filename2,strlen(filename) - strlen(hidemarudir) - 1);
  263.                     setactivehidemaru ##main;
  264.                     closehidemaru ##open;
  265.                 }
  266.                 $menu[13] = "(&K)ブロックの種類\t|" + $block;
  267.             }
  268.             else if(#extension == 2){
  269.                 #pre = val(input("ヒットした行の前何行まで出力しますか?",str(#pre)));
  270.                 #after = val(input("ヒットした行の後何行まで出力しますか?",str(#after)));
  271.                 $menu[13] = "(&B)前後の出力行 (前 : 後)\t|" + str(#pre) + " : " + str(#after);
  272.                 if(#lineTag == 0){
  273.                     $menu[14] = "(&G)強調行の出力\t|しない";
  274.                     $menu[15] = "";
  275.                 }
  276.                 else{
  277.                     if(#lineTag == 1)$menu[14] = "(&G)強調行の出力\t|ヒットしたブロックの強調行";
  278.                     if(#lineTag == 2)$menu[14] = "(&G)強調行の出力\t|強調行1の追加出力";
  279.                     $menu[15] = "(&K)ブロックの種類\t|" + $block;
  280.                 }
  281.             }
  282.         }
  283.         else if(result == 15){
  284.             if(#extension == 1){
  285.                 $menu[14] = "";
  286.             }
  287.             else if(#extension == 2){
  288.                 if(#lineTag == 2){
  289.                     $menu[14] = "(&G)強調行の出力\t|しない";
  290.                     $menu[15] = "";
  291.                     #lineTag = 0;
  292.                 }
  293.                 else{
  294.                     if(#lineTag == 0)$menu[14] = "(&G)強調行の出力\t|ヒットしたブロックの強調行";
  295.                     if(#lineTag == 1)$menu[14] = "(&G)強調行の出力\t|強調行1の追加出力";
  296.                     $menu[15] = "(&K)ブロックの種類\t|" + $block;
  297.                     #lineTag = #lineTag + 1;
  298.                 }
  299.             }
  300.         }
  301.         else if(result == 16){
  302.             if(#extension == 2){
  303.                 call BlockKind 11;
  304.                 #block = ##return;
  305.                 $menu[15] = "(&K)ブロックの種類\t|" + $block;
  306.             }
  307.         }
  308.         else if(result == 17)return;
  309.     }
  310.  
  311. RegON:
  312.     $menu[3] = "(&C)大文字/小文字の区別\t│---";
  313.     $menu[4] = "(&W)単語検索\t│---";
  314.     $menu[5] = "(&R)正規表現\t│ON";
  315.     #option = #option|16;
  316.     return;
  317.