home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 5 / FREESOFT.BIN / mopterm / fapx405b / fapxfile.plp < prev    next >
Text File  |  1992-08-19  |  24KB  |  1,056 lines

  1. /************************************************************************
  2. *    共通ルーチン                            *
  3. *************************************************************************/
  4. /*    ファイル名にワイルドカード(*,?)が含まれるかチェックする    */
  5. %wild    {
  6.     [file1]
  7.     case    (@nochar(file1)==0,
  8.         {Yes},{im({No})},
  9.         {No},
  10.         {
  11.         case    (@getchar(file1,1,1),
  12.             {*},{im({Yes})},
  13.             {?},{im({Yes})},
  14.             ,{im(@wild(@getchar(file1,2)))}
  15.             );
  16.         }
  17.         );
  18.     };
  19.  
  20. /*    入力ファイル選択(ワイルドカード不可)    */
  21. %FILEsel0{
  22.     [MSG,TYP]
  23.     SNDMSG({erande_f.snd});
  24.     footnote(MSG);
  25.     case    (TYP={},
  26.         {Yes},{OLDFILE:=@filesel},
  27.         {No},{OLDFILE:=@filesel(TYP)}
  28.         );
  29.     case    (OLDFILE={},
  30.         {Yes},
  31.         {im({})},
  32.         {No},
  33.         {
  34.         case    (@wild(OLDFILE),
  35.             {Yes},
  36.             {
  37.             display({ワイルドカード指定はできません\n});
  38.             FILEsel0(MSG,TYP);
  39.             },
  40.             {No},
  41.             {
  42.             case    (@nochar(@getcdir)==3,
  43.                 {Yes},{OLDFILE:=@getcdir|OLDFILE},
  44.                 {No},{OLDFILE:=@getcdir|{\}|OLDFILE});
  45.             case    (@filechk(OLDFILE),
  46.                 {No},
  47.                 {
  48.                 SNDMSG({okasi_f.snd});
  49.                 display(OLDFILE|{がありません\n});
  50.                 FILEsel0(MSG,TYP);
  51.                 },
  52.                 {Yes},
  53.                 {im(OLDFILE)}
  54.                 );
  55.             }
  56.             );
  57.         }
  58.         );
  59.     };
  60.  
  61. /*    入力ファイル選択(ワイルドカード可)    */
  62. %FILEsel1{
  63.     [MSG,TYP]
  64.     SNDMSG({erande_f.snd});
  65.     footnote(MSG);
  66.     case    (TYP={},
  67.         {Yes},{OLDFILE:=@filesel},
  68.         {No},{OLDFILE:=@filesel(TYP)}
  69.         );
  70.     case    (OLDFILE={},
  71.         {Yes},
  72.         {im({})},
  73.         {No},
  74.         {
  75.         case    (@wild(OLDFILE),
  76.             {Yes},
  77.             {
  78.             case    (@nochar(@getcdir)==3,
  79.                 {Yes},{OLDFILE:=@getcdir|OLDFILE},
  80.                 {No},{OLDFILE:=@getcdir|{\}|OLDFILE});
  81.             im(OLDFILE);
  82.             },
  83.             {No},
  84.             {
  85.             case    (@nochar(@getcdir)==3,
  86.                 {Yes},{OLDFILE:=@getcdir|OLDFILE},
  87.                 {No},{OLDFILE:=@getcdir|{\}|OLDFILE});
  88.             case    (@filechk(OLDFILE),
  89.                 {No},
  90.                 {
  91.                 SNDMSG({okasi_f.snd});
  92.                 display(OLDFILE|{がありません\n});
  93.                 FILEsel1(MSG,TYP);
  94.                 },
  95.                 {Yes},
  96.                 {im(OLDFILE)}
  97.                 );
  98.             }
  99.             );
  100.         }
  101.         );
  102.     };
  103.  
  104. /************************************************************************
  105. *    ファイル基本操作                        *
  106. *************************************************************************/
  107. /*    ファイル表示    */
  108. %DISPLAY{
  109.     loop    ({
  110.         case    (@FILEsel0({表示するファイルを指定して下さい},)={},
  111.             {Yes},{im({No})},
  112.             {No},
  113.             {
  114.             footnote({ファイル表示  }|OLDFILE);
  115.             command({more < }|OLDFILE);
  116.             im({Yes});
  117.             }
  118.             );
  119.         });
  120.     };
  121.  
  122. /*    ファイルダンプ表示    */
  123. %DUMP    {
  124.     loop    ({
  125.         case    (@FILEsel0({16進表示するファイルを指定して下さい},)={},
  126.             {Yes},{im({No})},
  127.             {No},
  128.             {
  129.             footnote({ファイル16進表示  }|OLDFILE);
  130.             command({dump }|OLDFILE|{ /1 | more});
  131.             im({Yes});
  132.             }
  133.             );
  134.         });
  135.     };
  136.  
  137. /*    ファイルサイズ表示    */
  138. %SIZE    {
  139.     loop    ({
  140.         case    (@FILEsel1({サイズ表示するファイルを指定して下さい},)
  141.                     ={},
  142.             {Yes},{im({No})},
  143.             {No},
  144.             {
  145.             footnote({ファイルサイズ表示  }|OLDFILE);
  146.             %cdir    @getcdir;
  147.             setcdir(CDIR);
  148.             command({txf -lcx -i }|OLDFILE);
  149.             setcdir(cdir);
  150.             im({Yes});
  151.             }
  152.             );
  153.         });
  154.     };
  155.  
  156. /*    EOFコード除去    */
  157. %RMZ    {
  158.     loop    ({
  159.         case    (@FILEsel1({サイズ表示するファイルを指定して下さい},)
  160.                     ={},
  161.             {Yes},{im({No})},
  162.             {No},
  163.             {
  164.             footnote({EOFコード除去  }|OLDFILE);
  165.             %cdir    @getcdir;
  166.             setcdir(CDIR);
  167.             command({txf -a -n -rz -i }|OLDFILE|{ -o }|OLDFILE);
  168.             setcdir(cdir);
  169.             im({Yes});
  170.             }
  171.             );
  172.         });
  173.     };
  174.  
  175. /*    ファイル削除    */
  176. %DELETE    {
  177.     loop    ({
  178.         case    (@FILEsel1({削除するファイルを指定して下さい},)={},
  179.             {Yes},{im({No})},
  180.             {No},
  181.             {
  182.             SNDMSG({kaknin_f.snd});
  183.             footnote({ファイル削除  }|OLDFILE);
  184.             select    (OLDFILE|{を削除してもいいですか?},
  185.                 Wtime4,,
  186.                 { は い },
  187.                 {case    (@tail(OLDFILE,{\})={*.*},
  188.                     {Yes},{command({echo y|del }|OLDFILE)},
  189.                     {No},{command({del }|OLDFILE)})},
  190.                 { いいえ },
  191.                 );
  192.             im({Yes});
  193.             }
  194.             );
  195.         });
  196.     };
  197.  
  198. /*    ファイル複写    */
  199. %COPY    {
  200.     %FILEsel2{
  201.         SNDMSG({erande_f.snd});
  202.         footnote({複写先のファイルを指定して下さい  複写元=}|OLDFILE);
  203.         NEWFILE:=@filesel;
  204.         NEWDIR:=@getcdir;
  205.         case(@nochar(NEWDIR)==3,{No},{NEWDIR:=NEWDIR|{\}});
  206.         case(@wild(OLDFILE),{Yes},{NEWFILE:={*.*}});
  207.         case(NEWFILE={},{Yes},{NEWFILE:={*.*}});
  208.         NEWFILE:=NEWDIR|NEWFILE;
  209.         };
  210.  
  211.     loop    ({
  212.         case    (@FILEsel1({複写元のファイルを指定して下さい},)={},
  213.             {Yes},{im({No})},
  214.             {No},
  215.             {
  216.             FILEsel2;
  217.             case    (@filechk(NEWFILE),
  218.                 {Yes},
  219.                 {
  220.                 SNDMSG({kaknin_f.snd});
  221.                 footnote({ファイル複写  }|
  222.                         OLDFILE|{ -> }|NEWFILE);
  223.                 select    ({複写先のファイルに上書き}|
  224.                         {してもいいですか?},
  225.                     Wtime4,,
  226.                     { は い },
  227.                     {command({copy }|OLDFILE|{ }|NEWFILE)},
  228.                     { いいえ },
  229.                     );
  230.                 },
  231.                 {No},{command({copy }|OLDFILE|{ }|NEWFILE)}
  232.                 );
  233.             im({Yes});
  234.             }
  235.             );
  236.         });
  237.     };
  238.  
  239. /*    ファイル移動    */
  240. %MOVE    {
  241.     %FILEsel2{
  242.         SNDMSG({erande_f.snd});
  243.         footnote({移動先のディレクトリへ移動し右クリックして下さい  移動元=}|
  244.                 OLDFILE);
  245.         %dmy    @filesel;
  246.         NEWDIR:=@getcdir;
  247.         case    (@nochar(NEWDIR)==3,
  248.             {Yes},{NEWFILE:=NEWDIR|@tail(OLDFILE,{\})},
  249.             {No},{NEWFILE:=NEWDIR|{\}|@tail(OLDFILE,{\})});
  250.         };
  251.  
  252.     loop    ({
  253.         case    (@FILEsel1({移動元のファイルを指定して下さい},)={},
  254.             {Yes},{im({No})},
  255.             {No},
  256.             {
  257.             FILEsel2;
  258.             case    (@filechk(NEWFILE),
  259.                 {Yes},
  260.                 {
  261.                 SNDMSG({kaknin_f.snd});
  262.                 footnote({ファイル移動  }|
  263.                         OLDFILE|{ -> }|NEWFILE);
  264.                 select    ({移動先のファイルに上書き}|
  265.                         {してもいいですか?},
  266.                     Wtime4,,
  267.                     { は い },
  268.                     {
  269.                     command({copy }|OLDFILE|{ }|NEWFILE);
  270.                     command({del }|OLDFILE);
  271.                     },
  272.                     { いいえ },
  273.                     );
  274.                 },
  275.                 {No},
  276.                 {
  277.                 command({copy }|OLDFILE|{ }|NEWFILE);
  278.                 case    (@tail(OLDFILE,{\})={*.*},
  279.                     {Yes},{command({echo y|del }|OLDFILE)},
  280.                     {No},{command({del }|OLDFILE)});
  281.                 }
  282.                 );
  283.             im({Yes});
  284.             }
  285.             );
  286.         });
  287.     };
  288.  
  289. /*    ファイル比較    */
  290. %COMPARE{
  291.     %FILEsel2{
  292.         SNDMSG({erande_f.snd});
  293.         footnote({比較先のファイルを指定して下さい  比較元=}|OLDFILE);
  294.         NEWFILE:=@filesel;
  295.         NEWDIR:=@getcdir;
  296.         case    (NEWFILE,
  297.             {},{im({})},
  298.             ,
  299.             {
  300.             case    (@nochar(NEWDIR)==3,
  301.                 {Yes},{NEWFILE:=NEWDIR|NEWFILE},
  302.                 {No},{NEWFILE:=NEWDIR|{\}|NEWFILE}
  303.                 );
  304.             case    (@filechk(NEWFILE),
  305.                 {No},
  306.                 {
  307.                 SNDMSG({okasi_f.snd});
  308.                 display(NEWFILE|{ がありません\n});
  309.                 FILEsel2;
  310.                 },
  311.                 {Yes},
  312.                 {im(NEWFILE)}
  313.                 );
  314.             }
  315.             );
  316.         };
  317.  
  318.     loop    ({
  319.         case    (@FILEsel0({比較元のファイルを指定して下さい},)={},
  320.             {Yes},{im({No})},
  321.             {No},
  322.             {
  323.             case    (@FILEsel2={},
  324.                 {Yes},{im({No})},
  325.                 {No},
  326.                 {
  327.                 footnote({ファイル比較  }|OLDFILE|
  328.                         { <-> }|NEWFILE);
  329.                 command({fc }|OLDFILE|{ }|NEWFILE|{|more});
  330.                 im({Yes})},
  331.                 {No},{im({No})}
  332.                 );
  333.             }
  334.             );
  335.         });
  336.     };
  337.  
  338. /*    ファイル名変更    */
  339. %RENAME    {
  340.     %FILEsel2{
  341.         SNDMSG({nyuryo_f.snd});
  342.         footnote({新ファイル名を入力して下さい  旧ファイル名=}|OLDFILE);
  343.         NEWFILE:=@filesel;
  344.         im(NEWFILE);
  345.         };
  346.  
  347.     loop    ({
  348.         case    (@FILEsel1({ファイル名を変更するファイルを}|
  349.                     {指定して下さい},)={},
  350.             {Yes},{im({No})},
  351.             {No},
  352.             {
  353.             case    (@FILEsel2={},
  354.                 {Yes},{im({No})},
  355.                 {No},
  356.                 {
  357.                 footnote({ファイル名変更  }|
  358.                         OLDFILE|{ -> }|NEWFILE);
  359.                 command({ren }|OLDFILE|{ }|NEWFILE);
  360.                 im({Yes});
  361.                 }
  362.                 );
  363.             }
  364.             );
  365.         });
  366.     };
  367.  
  368. /*    全ファイル削除    */
  369. %DELall    {
  370.     SNDMSG({erande_f.snd});
  371.     footnote({全ファイル削除するディレクトリへ移動して}|
  372.             {右クリックして下さい});
  373.     %dmy    @filesel;
  374.     OLDDIR:=@getcdir;
  375.     SNDMSG({kaknin_f.snd});
  376.     case    (@nochar(OLDDIR)==3,
  377.         {Yes},{footnote({全ファイル削除  }|OLDDIR|{*.*})},
  378.         {No},{footnote({全ファイル削除  }|OLDDIR|{\*.*})}
  379.         );
  380.     select    (OLDDIR|{の全ファイルを削除してもいいですか?},
  381.         Wtime4,,
  382.         { は い },
  383.         {setcdir(OLDDIR);command({echo y|del *.*})},
  384.         { いいえ },
  385.         );
  386.     };
  387.  
  388. /*    ファイル一覧表示    */
  389. %DIR    {
  390.     loop    ({
  391.         case    (@FILEsel1({一覧表示するファイルを指定してください  },)
  392.                 ={},
  393.             {Yes},
  394.             {
  395.             OLDDIR:=@getcdir;
  396.             SNDMSG({kaknin_f.snd});
  397.             footnote({ファイル一覧表示  }|OLDDIR);
  398.             select    (OLDDIR|{の全ファイル一覧表示ですか?},
  399.                 Wtime4,,
  400.                 {全ファイル一覧表示},
  401.                 {command({dir }|OLDDIR|{|more})},
  402.                 {     取    消     },
  403.                 );
  404.             },
  405.             {No},
  406.             {
  407.             footnote({ファイル一覧表示  }|OLDFILE);
  408.             command({dir }|OLDFILE|{|more});
  409.             }
  410.             );
  411.         });
  412.     };
  413.  
  414. /*    ファイル編集    */
  415. %EDIT    {
  416.     var    memono    [1];
  417.  
  418.     %CloseAllMemo{
  419.         case    (@mcheck!=0,{Yes},{loop({mclose(2);im(@mcheck!=0)})});
  420.         };
  421.  
  422.     %update{
  423.         footnote(OLDFILE|{を更新しています});
  424.         mclose(1);
  425.         dispoff({Yes});
  426.         command({del }|OLDFILE);
  427.         dispoff({No});
  428.         mwrite(OLDFILE,memono);
  429.         mopen(memono);
  430.         mclose(3);
  431.         im({No});
  432.         };
  433.  
  434.     %rewrite{
  435.         footnote(OLDFILE|{を清書しています});
  436.         CloseAllMemo;
  437.         dispoff({Yes});
  438.         %cdir @getcdir;
  439.         setcdir(CDIR);
  440.         command({del }|TEMP2|{_moptext.tmp});
  441.         command({del }|TEMP2|{_moptext});
  442.         mwrite(TEMP2|{_moptext.tmp},memono);
  443.          command({txf -i }|TEMP2|{_moptext.tmp -o }|TEMP2|{_moptext }|
  444.                 {-mr 72 -l 76 -r -q});
  445.           dispoff({No});
  446.         case    (@filechk(TEMP2|{_moptext}),
  447.             {Yes},
  448.             {
  449.             mclear(memono);
  450.             mread(TEMP2|{_moptext},memono);
  451.             mopen(memono,0,21,639,459,{w});
  452.             },
  453.             {No},
  454.             {
  455.             display({清書機能には TXF.EXE がパスの通った}|
  456.                     {ディレクトリに必要です\n});
  457.             wait(2);
  458.             mopen(memono,0,21,639,459,{w});
  459.             }
  460.             );
  461.         setcdir(cdir);
  462.         im({Yes});
  463.         };
  464.  
  465.     %MEMONO    @mlast;
  466.     case    (MEMONO==9,
  467.         {Yes},
  468.         {
  469.         footnote({メモ9の利用してファイル編集を行います});
  470.         SNDMSG    ({kaknin_f.snd});
  471.         select    ({メモ9を利用してファイル編集を行います},
  472.             Wtime4,{memono:=0},
  473.             { は い },{memono:=9},
  474.             { いいえ },{memono:=0}
  475.             );
  476.         },
  477.         {No},{memono:=MEMONO+1}
  478.         );
  479.     case    (memono>0,
  480.         {Yes},
  481.         {
  482.         loop    ({
  483.             CloseAllMemo;
  484.             case    (@FILEsel0({編集するファイルを選択}|
  485.                         {してください},)<>{},
  486.                 {Yes},
  487.                 {
  488.                 mclear(memono);
  489.                 mread(OLDFILE,memono);
  490.                 mopen(memono,0,21,639,459,{w});
  491.                 loop    ({
  492.                     footnote({更新取消清書},{b});
  493.                     waitx();
  494.                     case    (@xtype,
  495.                         101,update,
  496.                         201,update,
  497.                         102,{mclose(3)},
  498.                         202,{mclose(3)},
  499.                         103,rewrite,
  500.                         203,rewrite,
  501.                         ,{im({Yes})}
  502.                         );
  503.                     });
  504.                 im({Yes});
  505.                 },
  506.                 {No},
  507.                 {im({No})}
  508.                 );
  509.             });
  510.         }
  511.         );
  512.     };
  513.  
  514. /*    ファイル実行    */
  515. %EXEC    {
  516.     var    PARAM    [64];
  517.     %execfile{
  518.         SNDMSG({nyuryo_f.snd});
  519.         PARAM:=@input(OLDFILE|{ のパラメータを入力して下さい});
  520.         footnote({ファイル実行中  }|OLDFILE);
  521.         command(OLDFILE|{ }|PARAM);
  522.         im({Yes});
  523.         };
  524.  
  525.     loop    ({
  526.         case    (@FILEsel0({実行するファイルを指定して下さい},)={},
  527.             {Yes},{im({No})},
  528.             {No},
  529.             {
  530.             case    (@tail(OLDFILE,{.}),
  531.                 {COM},execfile,
  532.                 {EXE},execfile,
  533.                 {BAT},execfile,
  534.                 ,
  535.                 {
  536.                 SNDMSG({okasi_f.snd});
  537.                 display(OLDFILE|{ は実行できません});
  538.                 im({Yes});
  539.                 }
  540.                 );
  541.             }
  542.             );
  543.         });
  544.     };
  545.  
  546. /*    NAPLPSファイル表示    */
  547. %NAPLPS    {
  548.     loop    ({
  549.         case    (@FILEsel0({NAPLPSデータファイルを指定して下さい},)={},
  550.             {Yes},{im({No})},
  551.             {No},
  552.             {
  553.             footnote({NAPLPSファイル表示  }|OLDFILE);
  554.             naplps(OLDFILE);
  555.             footnote({終了次絵},{b});
  556.             waitx    (300);
  557.             case    (@xtype,
  558.                 -2,{im({No})},
  559.                 101,{napend;im({No});},
  560.                 201,{napend;im({No});},
  561.                 102,{im({Yes})},202,{im({Yes})});
  562.             }
  563.             );
  564.         });
  565.     };
  566.  
  567. /************************************************************************
  568. *    ファイル応用操作    (lha,ish,diet)                *
  569. *************************************************************************/
  570. /*    ファイル凍結    */
  571. %LHAarc    {
  572.     %FILEsel2{
  573.         SNDMSG({nyuryo_f.snd});
  574.         footnote({書庫ファイル名を入力して下さい  元ファイル=}|OLDFILE);
  575.         NEWFILE:=@filesel({LZH});
  576.         NEWDIR:=@getcdir;
  577.         case    (NEWFILE<>{},
  578.             {Yes},{case(@nochar(NEWDIR)==3,
  579.                 {Yes},{NEWFILE:=NEWDIR|NEWFILE},
  580.                 {No},{NEWFILE:=NEWDIR|{\}|NEWFILE})});
  581.         im(NEWFILE);
  582.         };
  583.  
  584.     loop    ({
  585.         case    (@FILEsel1({圧縮凍結するファイルを指定して下さい},)={},
  586.             {Yes},{im({No})},
  587.             {No},
  588.             {
  589.             case    (@FILEsel2={},
  590.                 {Yes},{im({No})},
  591.                 {No},
  592.                 {
  593.                 footnote({ファイル圧縮凍結処理中  }|
  594.                         OLDFILE|{ -> }|NEWFILE);
  595.                 command({lha u }|NEWFILE|{ }|OLDFILE);
  596.                 im({Yes});
  597.                 }
  598.                 );
  599.             }
  600.             );
  601.         });
  602.     };
  603.  
  604. /*    ファイル解凍    */
  605. %LHAext    {
  606.     loop    ({
  607.         case    (@FILEsel0({解凍する *.LZH ファイルを指定して下さい},
  608.                     {LZH})={},
  609.             {Yes},{im({No})},
  610.             {No},
  611.             {
  612.             footnote({ファイル解凍処理中  }|OLDFILE);
  613.             command({lha x }|OLDFILE);
  614.             im({Yes});
  615.             }
  616.             );
  617.         });
  618.     };
  619.  
  620. /*    凍結ファイル内容表示    */
  621. %LHAlst    {
  622.     loop    ({
  623.         case    (@FILEsel0({内容表示する *.LZH ファイルを}|
  624.                     {指定して下さい},{LZH})={},
  625.             {Yes},{im({No})},
  626.             {No},
  627.             {
  628.             footnote({凍結ファイル内容表示中  }|OLDFILE);
  629.             command({lha l }|OLDFILE);
  630.             im({Yes});
  631.             }
  632.             );
  633.         });
  634.     };
  635.  
  636. /*    ファイル石化    */
  637. %ISHstr    {
  638.     loop    ({
  639.         case    (@FILEsel1({*.ISH ファイルに変換するファイルを}|
  640.                     {指定して下さい},)={},
  641.             {Yes},{im({No})},
  642.             {No},
  643.             {
  644.             case    (OLDFILE={},
  645.                 {Yes},{im({No})},
  646.                 {No},
  647.                 {
  648.                 footnote({ISHファイル変換処理中  }|OLDFILE);
  649.                 command({ish }|OLDFILE|{ /ss});
  650.                 im({Yes});
  651.                 }
  652.                 );
  653.             }
  654.             );
  655.         });
  656.     };
  657.  
  658. /*    ファイル解石    */
  659. %ISHres    {
  660.     loop    ({
  661.         case    (@FILEsel1({復元する *.ISH ファイルを指定して下さい},
  662.                     {ISH})={},
  663.             {Yes},{im({No})},
  664.             {No},
  665.             {
  666.             case    (OLDFILE={},
  667.                 {Yes},{im({No})},
  668.                 {No},
  669.                 {
  670.                 footnote({ISHファイル復元処理中  }|OLDFILE);
  671.                 command({ish }|OLDFILE|{ /r});
  672.                 im({Yes});
  673.                 }
  674.                 );
  675.             }
  676.             );
  677.         });
  678.     };
  679.  
  680. /*    ダイエット処理    */
  681. %DIETarc{
  682.     loop    ({
  683.         case    (@FILEsel1({ダイエットするファイルを指定して下さい},)
  684.                     ={},
  685.             {Yes},{im({No})},
  686.             {No},
  687.             {
  688.             case    (OLDFILE={},
  689.                 {Yes},{im({No})},
  690.                 {No},
  691.                 {
  692.                 footnote({ダイエット処理中  }|OLDFILE);
  693.                 command({diet }|OLDFILE);
  694.                 im({Yes});
  695.                 }
  696.                 );
  697.             }
  698.             );
  699.         });
  700.     };
  701.  
  702. /*    ダイエットファイル復元    */
  703. %DIETres{
  704.     loop    ({
  705.         case    (@FILEsel1({復元するダイエットファイルを}|
  706.                     {指定して下さい},)={},
  707.             {Yes},{im({No})},
  708.             {No},
  709.             {
  710.             case    (OLDFILE={},
  711.                 {Yes},{im({No})},
  712.                 {No},
  713.                 {
  714.                 footnote({ダイエットファイル復元処理中  }|
  715.                         OLDFILE);
  716.                 command({diet -ra }|OLDFILE);
  717.                 im({Yes});
  718.                 }
  719.                 );
  720.             }
  721.             );
  722.         });
  723.     };
  724.  
  725. /************************************************************************
  726. *    ディレクトリ基本操作                        *
  727. *************************************************************************/
  728. /*    ツリー表示    */
  729. %TREE    {
  730.     SNDMSG({erande_f.snd});
  731.     footnote({ツリー表示するディレクトリへ移動して右クリックして下さい});
  732.     %dmy    @filesel;
  733.     OLDDIR:=@getcdir;
  734.     footnote({ツリー表示中  }|OLDDIR);
  735.     command({tree }|OLDDIR|{|more});
  736.     };
  737.  
  738. /*    ディレクトリ作成    */
  739. %MKDIR    {
  740.     SNDMSG({erande_f.snd});
  741.     footnote({作成するディレクトリ名を指定して下さい});
  742.     NEWDIR:=@filesel;
  743.     OLDDIR:=@getcdir;
  744.     case    (@nochar(OLDDIR)==3,
  745.         {Yes},{NEWDIR:=OLDDIR|NEWDIR},
  746.         {No},{NEWDIR:=OLDDIR|{\}|NEWDIR});
  747.     mkdir2(NEWDIR);
  748.     };
  749.  
  750. /*    ディレクトリ削除    */
  751. %RMDIR    {
  752.     SNDMSG({erande_f.snd});
  753.     footnote({削除するディレクトリへ移動して右クリックして下さい});
  754.     %dmy    @filesel;
  755.     OLDDIR:=@getcdir;
  756.     case    (@nochar(OLDDIR)==3,
  757.         {Yes},
  758.         {
  759.         SNDMSG({okasi_f.snd});
  760.         display({ルートディレクトリは削除できません\n});
  761.         },
  762.         {No},
  763.         {
  764.         SNDMSG({kaknin_f.snd});
  765.         footnote({削除ディレクトリ=}|OLDDIR);
  766.         select    ({ディレクトリ }|OLDDIR|{ を削除してもいいですか?},
  767.             Wtime4,,
  768.             { は い },
  769.             {
  770.             setcdir2(@body(OLDDIR,,{\}));
  771.             command({rmdir }|@tail(OLDDIR,{\}));
  772.             },
  773.             { いいえ },
  774.             );
  775.         }
  776.         );
  777.     };
  778.  
  779. /*    ディレクトリ複写    */
  780. %DIRCOPY{
  781.     %FILEsel1{
  782.         SNDMSG({erande_f.snd});
  783.         footnote({複写元のディレクトリへ移動して右クリックして下さい});
  784.         %dmy    @filesel;
  785.         OLDDIR:=@getcdir;
  786.         };
  787.  
  788.     %FILEsel2{
  789.         SNDMSG({erande_f.snd});
  790.         footnote({複写先のディレクトリは?  複写元=}|OLDDIR);
  791.         %dmy    @filesel;
  792.         NEWDIR:=@getcdir;
  793.         };
  794.  
  795.     FILEsel1;
  796.     display({複写元ディレクトリ  }|OLDDIR|{\n});
  797.     wait(1);
  798.     FILEsel2;
  799.     SNDMSG({kaknin_f.snd});
  800.     footnote({ディレクトリ複写  }|OLDDIR|{ -> }|NEWDIR);
  801.     select    ({ディレクトリ複写を実行してもいいですか?},
  802.         Wtime4,,
  803.         { は い },
  804.         {command({xcopy }|OLDDIR|{ }|NEWDIR|{ /s /e})},
  805.         { いいえ },
  806.         );
  807.     };
  808.  
  809. /************************************************************************
  810. *    フロッピィディスク操作                        *
  811. *************************************************************************/
  812. /*    フロッピィディスク初期化    */
  813. %FORMAT    {
  814.     var    DEVICE    [2];
  815.     var    FPDtype    [9];
  816.     var    OPT    [2];
  817.     var    LABEL    [11];
  818.     LABEL:={};
  819.     loop    ({
  820.         SNDMSG({erande_f.snd});
  821.         footnote({初期化するフロッピィディスク装置を選んで下さい});
  822.         select    ({初期化するフロッピィディスク装置を選んで下さい},
  823.             Wtime4,{DEVICE:={}},
  824.             {  A  },{DEVICE:={A:}},
  825.             {  B  },{DEVICE:={B:}},
  826.             { 終 了 },{DEVICE:={}}
  827.             );
  828.         case    (DEVICE={},
  829.             {Yes},{im({No})},
  830.             {No},
  831.             {
  832.             SNDMSG({erande_f.snd});
  833.             footnote({フロッピィディスクの種類を選んで下さい});
  834.             select    ({フロッピィディスクの種類を選んで下さい},
  835.                 Wtime4,{FPDtype:={2HD/1.2MB}},
  836.                 {2HD/1.2MB},
  837.                 {FPDtype:={2HD/1.2MB};OPT:={}},
  838.                 {2DD/640KB},
  839.                 {FPDtype:={2DD/640KB};OPT:={/8}},
  840.                 {2DD/720KB},
  841.                 {FPDtype:={2DD/720KB};OPT:={/9}}
  842.                 );
  843.             SNDMSG({nyuryo_f.snd});
  844.             footnote({ボリュームラベル名を入力して下さい});
  845.             LABEL:=@input({ボリュームラベル名を入力して下さい},,
  846.                     LABEL);
  847.             case    (@nochar(LABEL)>11,
  848.                 {Yes},{LABEL:=@getchar(LABEL,1,11)});
  849.             SNDMSG({kaknin_f.snd});
  850.             footnote({DEVICE=}|DEVICE|{  TYPE=}|FPDtype|
  851.                     {  LABEL=}|LABEL);
  852.             select    ({初期化を行います}|
  853.                     {  フロッピィをセットして下さい},
  854.                 Wtime4,,
  855.                 { O K },
  856.                 {
  857.                 footnote({フロッピィディスク初期化中  }|
  858.                         DEVICE);
  859.                 dispoff({Yes});
  860.                 command({del }|TEMP2|{_mopform.tmp});
  861.                 dispoff({No});
  862.                 write(TEMP2|{_mopform.tmp},{\n}|LABEL|{\nN\n});
  863.                 command({type }|TEMP2|{_mopform.tmp}|
  864.                     {|format }|DEVICE|{ }|OPT);
  865.                 },
  866.                 { N G },
  867.                 );
  868.             im({Yes});
  869.             }
  870.             );
  871.         });
  872.     };
  873.  
  874. /*    フロッピィディスク複写    */
  875. %DISKCOPY{
  876.     var    DEVICE1    [2];
  877.     var    DEVICE2    [2];
  878.     loop    ({
  879.         SNDMSG({erande_f.snd});
  880.         footnote({複写元と複写先を選んで下さい});
  881.         select    ({複写元と複写先を選んで下さい},
  882.             Wtime4,{DEVICE1:={}},
  883.             { A → B },{DEVICE1:={A:};DEVICE2:={B:}},
  884.             { B → A },{DEVICE1:={B:};DEVICE2:={A:}},
  885.             {  終 了  },{DEVICE1:={}}
  886.             );
  887.         case    (DEVICE1={},
  888.             {Yes},{im({No})},
  889.             {No},
  890.             {
  891.             SNDMSG({kaknin_f.snd});
  892.             footnote({フロッピィディスク複写  }|
  893.                     DEVICE1|{ -> }|DEVICE2);
  894.             select    ({複写を行います}|
  895.                     {  フロッピィをセットして下さい},
  896.                 Wtime4,,
  897.                 { O K },
  898.                 {
  899.                 dispoff({Yes});
  900.                 command({del }|TEMP2|{_mopdkcp.tmp});
  901.                 dispoff({No});
  902.                 write(TEMP2|{_mopdkcp.tmp},{\nN\n});
  903.                 command({type }|TEMP2|{_mopdkcp.tmp}|
  904.                     {|diskcopy }|DEVICE1|{ }|DEVICE2);
  905.                 },
  906.                 { N G },
  907.                 );
  908.             im({Yes});
  909.             }
  910.             );
  911.         });
  912.     };
  913.  
  914. /*    フロッピィディスク比較    */
  915. %DISKCOMP{
  916.     loop    ({
  917.         SNDMSG({kaknin_f.snd});
  918.         footnote({フロッピィディスク比較  A: <-> B:});
  919.         select    ({比較を行います  フロッピィをセットして下さい},
  920.             Wtime4,,
  921.             { O K },
  922.             {
  923.             dispoff({Yes});
  924.             command({del }|TEMP2|{_mopdkcm.tmp});
  925.             dispoff({No});
  926.             write(TEMP2|{_mopdkcm.tmp},{\nN\n});
  927.             command({type }|TEMP2|{_mopdkcm.tmp}|
  928.                 {|diskcomp A: B:});
  929.             im({Yes});
  930.             },
  931.             { 終  了 },{im({No})}
  932.             );
  933.         });
  934.     };
  935.  
  936. /************************************************************************
  937. *    コマンドシェル実行                        *
  938. *************************************************************************/
  939. /*    コマンドシェル実行    */
  940. %COMMAND{
  941.     footnote({コマンド実行モード中  EXIT<cr>と入力すると終了します});
  942.     command({command.com});
  943.     };
  944.  
  945. /************************************************************************
  946. *    詳細メニュー                            *
  947. *************************************************************************/
  948. /*    ファイル基本操作の選択    */
  949. %FILEman1{
  950.     loop    ({
  951.         SNDMSG({erande_f.snd});
  952.         footnote({ファイル基本操作の処理を選択して下さい});
  953.         select    ({ファイル基本操作メニュー},
  954.             Wtime4,{im({No})},
  955.             {ファイル表示     =MORE     },{DISPLAY;    im({Yes})},
  956.             {ファイル16進表示 =DUMP&MORE},{DUMP;    im({Yes})},
  957.             {ファイルサイズ   >TXF -lcx },{SIZE;    im({Yes})},
  958.             {ファイル複写     -copy     },{COPY;    im({Yes})},
  959.             {ファイル移動     -copy&del },{MOVE;    im({Yes})},
  960.             {ファイル名変更   -rename   },{RENAME;    im({Yes})},
  961.             {ファイル比較     =FC       },{COMPARE;    im({Yes})},
  962.             {ファイル削除     -del      },{DELETE;    im({Yes})},
  963.             {全ファイル削除   -del *.*  },{DELall;    im({Yes})},
  964.             {ファイル一覧表示 =dir&MORE },{DIR;    im({Yes})},
  965.             {EOFコード除去    >TXF -rz  },{RMZ;    im({Yes})},
  966.             {NAPLPS表示 -         },{NAPLPS;    im({Yes})},
  967.             {        終       了        },{im({No})}
  968.             );
  969.         });
  970.     };
  971.  
  972. /*    ファイル応用操作の選択    */
  973. %FILEman2{
  974.     loop    ({
  975.         SNDMSG({erande_f.snd});
  976.         footnote({ファイル応用操作の処理を選択して下さい});
  977.         select    ({ファイル応用操作メニュー},
  978.             Wtime4,{im({No})},
  979.             {ファイル圧縮凍結 >LHA u    },{LHAarc;    im({Yes})},
  980.             {ファイル解凍     >LHA x    },{LHAext;    im({Yes})},
  981.             {凍結ファイル一覧 >LHA l    },{LHAlst;    im({Yes})},
  982.             {ファイル石化     >ISH /s   },{ISHstr;    im({Yes})},
  983.             {ファイル解石     >ISH /r   },{ISHres;    im({Yes})},
  984.             {ファイル圧縮     >DIET     },{DIETarc;    im({Yes})},
  985.             {ファイル復元     >DIET -ra },{DIETres;    im({Yes})},
  986.             {        終       了        },{im({No})}
  987.             );
  988.         });
  989.     };
  990.  
  991. /*    ディレクトリ操作の選択    */
  992. %DIRman    {
  993.     loop    ({
  994.         SNDMSG({erande_f.snd});
  995.         footnote({ディレクトリ操作の処理を選択して下さい});
  996.         select    ({ディレクトリ操作メニュー},
  997.             Wtime4,{im({No})},
  998.             {ツリー表示       =TREE&MORE},{TREE;    im({Yes})},
  999.             {ディレクトリ作成 -mkdir    },{MKDIR;    im({Yes})},
  1000.             {ディレクトリ削除 -rmdir    },{RMDIR;    im({Yes})},
  1001.             {ディレクトリ複写 =XCOPY    },{DIRCOPY;    im({Yes})},
  1002.             {        終       了        },{im({No})}
  1003.             );
  1004.         });
  1005.     };
  1006.  
  1007. /*    フロッピィディスク操作の選択    */
  1008. %DISKman{
  1009.     loop    ({
  1010.         SNDMSG({erande_f.snd});
  1011.         footnote({フロッピィディスク操作の処理を選択して下さい});
  1012.         select    ({フロッピィディスク操作メニュー},
  1013.             Wtime4,{im({No})},
  1014.             {フロッピィ初期化 =FORMAT   },{FORMAT;    im({Yes})},
  1015.             {フロッピィ複写   =DISKCOPY },{DISKCOPY;im({Yes})},
  1016.             {フロッピィ比較   =DISKCOMP },{DISKCOMP;im({Yes})},
  1017.             {        終       了        },{im({No})}
  1018.             );
  1019.         });
  1020.     };
  1021.  
  1022. /************************************************************************
  1023. *    ファイル操作メインメニュー                    *
  1024. *************************************************************************/
  1025. /*    設定する情報の選択    */
  1026. %FAPXFILE{
  1027.     loop    ({
  1028.         SNDMSG({erande_f.snd});
  1029.         footnote({ファイル操作を選択して下さい});
  1030.         select    ({ファイル操作メインメニュー},
  1031.             Wtime4,{im({No})},
  1032.             {       ファイル基本操作       },{FILEman1;im({Yes})},
  1033.             {ファイル応用操作(lha,ish,diet)},{FILEman2;im({Yes})},
  1034.             {       ディレクトリ操作       },{DIRman;  im({Yes})},
  1035.             {    フロッピィディスク操作    },{DISKman; im({Yes})},
  1036.             {         ファイル編集         },{EDIT;    im({Yes})},
  1037.             {         ファイル実行         },{EXEC;    im({Yes})},
  1038.             {       コマンド直接実行       },{COMMAND; im({Yes})},
  1039.             {         終        了         },{im({No})}
  1040.             );
  1041.         });
  1042.     };
  1043.  
  1044. /************************************************************************
  1045. *    作業領域定義                            *
  1046. *************************************************************************/
  1047. var    OLDFILE    [64];
  1048. var    NEWFILE    [64];
  1049. var    OLDDIR    [64];
  1050. var    NEWDIR    [64];
  1051.  
  1052. /************************************************************************
  1053. *    実行文                                *
  1054. *************************************************************************/
  1055. FAPXFILE;
  1056.