home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a014 / 1.ddi / CDBINC.EXE / SUB8.C < prev    next >
Encoding:
C/C++ Source or Header  |  1991-09-18  |  7.0 KB  |  308 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <dos.h>
  4. #define pr(x) fprintf(fp,x)
  5. main(int argc,char *argv[])
  6. { FILE *fp;
  7.   int choice,bb[3],j,row,col;
  8.   char buff[60],p;
  9.   if(argc<2)
  10.    return;
  11.   if((fp=fopen("dcopy.prg","r"))!=NULL)
  12.   {
  13.      clear_win(0,0,24,79,0)    ;
  14.      color_puts("╩²╛▌▒╕╖▌",14,2,2);
  15.      color_puts("┤╦ ─ú ┐Θ ╥╤ ┤µ ╘┌,╩╟ ╖± ╓╪ ╨┬ ╔· │╔(Y/N)? ",14,12,20);
  16.      cursor(13,35);
  17.      scanf("%c",&p);
  18.      if(p!='Y'&&p!='y')
  19.       {
  20.        fclose(fp);
  21.        return;
  22.       }
  23.      fclose(fp);
  24.   }
  25.   bb[1]=0; bb[2]=0;
  26.   clear_win(0,0,24,79,0x70)    ;
  27.   clear_win(9,24,18,54,0)    ;
  28.   clear_win(8,23,17,52,0x10)    ;
  29.   color_puts("=========  ╩²╛▌▒╕╖▌ ==========",30,8,23)    ;
  30.   color_puts("1---╩² ╛▌ ┐Γ ▒╕ ╖▌",30,11,27)    ;
  31.   color_puts("2---╩² ╛▌ ═╝ ╨╬ ▒╕ ╖▌",30,13,27)    ;
  32.   color_puts("0---═╦ │÷",30,15,27)    ;
  33.   color_puts("==============================",30,17,23)        ;
  34.   color_puts("╟δ╩Σ╚δ─·╡─╤í╘±(0-2) [  ]",30,22,23)    ;
  35.   while((choice=get(0,2,22,44))!=0)
  36.     if(choice==1)
  37.       if(bb[1]==0)
  38.      {
  39.         bb[1]=1    ;
  40.         color_puts("*",215,11,25)    ;
  41.      }
  42.       else
  43.      {
  44.         bb[1]=0    ;
  45.         color_puts(" ",30,11,25)    ;
  46.      }
  47.     else
  48.        if(bb[2]==0)
  49.      {
  50.         bb[2]=1    ;
  51.         color_puts("*",215,13,25)    ;
  52.      }
  53.        else
  54.      {
  55.         bb[2]=0    ;
  56.         color_puts(" ",30,11,25)    ;
  57.      }
  58.   if(bb[1]==0&&bb[2]==0)
  59.     return;
  60.   color_puts("╒²╘┌╔·│╔,╟δ╔╘║≥!",56,3,25);
  61.   fp=fopen("dcopy.prg","w");
  62.   pr("do while .T.\n");
  63.   pr("set color to /W\nclear\n")    ;
  64.   pr("set color to /X\n@7,24 clear to 18,52\n")    ;
  65.   pr("set color to W+/B\n@6,22 clear to 17,50\n")    ;
  66.   fprintf(fp,"@6,22 say '============================'\n")    ;
  67.   pr("@17,22 say '============================'\n")    ;
  68.   pr("pase=' '\n");
  69.   pr("@0,0 say '╩²╛▌▒╕╖▌'\n");
  70.   pr("@8,28 say '  ╟δ╩Σ╚δ─·╡─╤í╘±'get pase\n");
  71.   pr("@9,28 say '~~~~~~~~~~~~~~~~~~~'\nset color to W+/B\n");
  72.   row=11; col=28; j=1;
  73.   if(bb[1])
  74.     { fprintf(fp,"@%d,%d say '%d ---╩² ╛▌ ┐Γ ▒╕ ╖▌'\n",row,col,j);
  75.       j++;
  76.       row=row+2;
  77.     }
  78.   if(bb[2])
  79.     { fprintf(fp,"@%d,%d say '%d---╩² ╛▌ ═╝ ╨╬ ▒╕ ╖▌'\n",row,col,j);
  80.       row=row+2;
  81.     }
  82.   fprintf(fp,"@%d,%d say '0---═╦ │÷'\n",row,col);
  83.   pr("read\nset color to W+/b\n");
  84.   if(bb[1]!=0&&bb[2]!=0)
  85.     pr("do while at(pase,'012')=0\n");
  86.   else
  87.     pr("do while at(pase,'01')=0\n");
  88.   pr("pase=' '\n");
  89.   pr("@8,44 get pase\n");
  90.   pr("read\n");
  91.   pr("enddo\n");
  92.   pr("if pase='0'\n");
  93.   pr("return\n");
  94.   pr("endif\n");
  95.   pr("set color to /W\nclear\n");
  96.   pr("set color to /X\n@7,22 clear to 18,52\n")    ;
  97.   pr("set color to W+/B\n@6,20 clear to 17,50\n")    ;
  98.   pr("@6,20 say '==============================='\n")    ;
  99.   pr("@17,20 say '==============================='\n")    ;
  100.   pr("rec=' '\n");
  101.   pr("@8,25 say '╟δ ╤í ╘± ▓┘ ╫≈ ╖╜ ╩╜  ' get rec\n");
  102.   pr("@9,21 say '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'\n");
  103.   pr("set color to W+/B\n@11,24 say '1---╡Ñ ╕÷ ╬─ ╝■ ▒╕ ╖▌'\n");
  104.   pr("@13,24 say '2---╚½ ▓┐ ╬─ ╝■ ▒╕ ╖▌'\n");
  105.   pr("@15,24 say '0---═╦ │÷'\n");
  106.   pr("read\nset color to W+/b\n");
  107.   pr("do while at(rec,'012')=0\n");
  108.   pr("rec=' '\n");
  109.   pr("@8,47 get rec\n");
  110.   pr("read\n");
  111.   pr("enddo\n");
  112.   pr("if rec<>'0'\n");
  113.   pr("clear\nset color to W+/B\n");
  114.   pr("@12,12 say '╟δ ─· ╜½ ╚φ ┼╠ ▓σ ╚δ A ╟² ╢» ╞≈,╚╗ ║≤ ┐¬ ╩╝ '\n");
  115.   pr("wait\n");
  116.   pr("endif\nset color to W+/B\n");
  117.   pr("clear\n");
  118.   pr("run c:\n");
  119.   pr("do case\n");
  120.   if(bb[1]==1)
  121.   { pr("case pase='1'\n");
  122.     pr("if rec='2'\n");
  123.     fprintf(fp,"run copy %s*.dbf a:\n",argv[1]);
  124. /*    fprintf(fp,"run copy %s*.ndx a:\n",argv[1]);
  125.     fprintf(fp,"run copy %s*.mem a:\n",argv[1]);
  126.     fprintf(fp,"run copy %s*.dbt a:\n",argv[1]);*/
  127.     pr("endif\n");
  128.     pr("if rec='1'\n");
  129.     pr("wx=.T.\n");
  130.     pr("do while wx\n");
  131.     pr("set color to w+/B\n@2,25 say '╟δ╤í╘±╦∙╨Φ▓┘╫≈┐Γ'\n");
  132.     pr("set color to W+/B\nname='  '\n");
  133.     pr("flag=0\ncoflag=' '\n")    ;
  134.     pr("do dbfmenu with name,flag,coflag\n");
  135.     pr("if name='0'\n");
  136.     pr("wx=.F.\n");
  137.     pr("clear\n");
  138.     pr("else\n");
  139.     pr("clear\n");
  140.     fprintf(fp,"vdbf='%s'+trim(name)+'.dbf'\n",argv[1]);
  141. /*    fprintf(fp,"ind='%s'+trim(name)+'.ndx'\n",argv[1]);*/
  142.     pr("run copy &vdbf a:\n");
  143. /*    pr("run copy &ind a:\n");*/
  144.     pr("tt=' '\n");
  145.     pr("do while tt<>'Y' .AND.tt<>'N'\n");
  146.     pr("@12,12 say '╗╣ ╥¬ ╝╠ ╨° ┬≡ ? (Y/N) ' get tt  pict '!'\n");
  147.     pr("read\n");
  148.     pr("enddo\n");
  149.     pr("if tt='N'\n");
  150.     pr("wx=.F.\n");
  151.     pr("endif\n");
  152.     pr("endif\n");
  153.     pr("enddo\n");
  154.     pr("endif\n");
  155.    }
  156.   if(bb[2]!=0)
  157.    { if (bb[1]!=0)
  158.        pr("case pase='2'\n");
  159.      else
  160.        pr("case pase='1'\n");
  161.      pr("@12,12 say 'I dont know'\n");
  162.    }
  163.   pr("endcase\n");
  164.   pr("enddo\n");
  165.   fclose(fp);
  166.  }
  167.  
  168.  
  169.  
  170.  
  171.  
  172. dela()
  173. {  int i,j;
  174.    for (i=0;i<10;i++)
  175.       for (j=-30000;j<30000;j++) ;
  176. }
  177.  
  178.  
  179.  
  180. getcc()
  181. {  union REGS r;
  182.    r.h.ah=0;
  183.    int86(0x16,&r,&r);
  184.    if (r.h.al==27) exit(0);
  185.    if (r.h.al) return(r.h.al);
  186.    return(r.x.ax);
  187. }
  188.  
  189.  
  190.  
  191. get(i,j,row,col)
  192. int i,j,row,col;
  193. {  int key,c,n=0;
  194.    cursor(row,col);
  195.    printf("   ");
  196.    cursor(row,col);
  197.    while ((key=getcc())!=0x0D)
  198.      {  putchar(key);
  199.     switch (key)
  200.       {  case 18432 : return('u');
  201.          case 18688 : return('U');
  202.          case 20480 : return('d');
  203.          case 20736 : return('D');
  204.          case 15104 : return('H');
  205.          case    8  : if (n!=0) n=n/10;
  206.               else  {  error();  cursor(row,col);  }
  207.               break;
  208.          default    : n=10*n+key%256-'0';
  209.               break;
  210.       }
  211.      }
  212.    if ((n>j||n<=i)&&n!=0) {  error();
  213.                  get(i,j,row,col);
  214.               }
  215.    else return(n);
  216.    }
  217.  
  218.  
  219. cursor(int y, int x)
  220. {
  221.   _DH = (unsigned char)y    ;
  222.   _DL = (unsigned char)x    ;
  223.   _AH = (unsigned char)2    ;
  224.   _BH = (unsigned char)0    ;
  225.   geninterrupt(0x10)    ;
  226. }
  227.  
  228. color_puts(char *string, int  color, int row, int col)
  229. {
  230.   _SI = (unsigned int) string    ;
  231.   _DH = (unsigned char) row    ;
  232.   _DL = (unsigned char) col    ;
  233.   _CX = 1    ;
  234.   while(*(( char * ) _SI))
  235.    {
  236.      _AH = (unsigned char) 2    ;
  237.      _BH = (unsigned char) 0    ;
  238.      __int__(0x10)    ;
  239.      ++_DL    ;
  240.  
  241.      _AH = (unsigned char) 9    ;
  242.      _AL = *((char *)_SI)    ;
  243.      _SI++    ;
  244.      _BH = (unsigned char) 0    ;
  245.      _BL = (unsigned char) color    ;
  246.      __int__(0x10)    ;
  247.    }
  248. }
  249.  
  250.  
  251. clear_win(startrow,startcol,endrow,endcol,attribe)
  252. int startrow,startcol;
  253. int endrow,endcol;
  254. int attribe;
  255. {
  256.   _AH = (unsigned char) 6    ;
  257.   _AL = (unsigned char) 0    ;
  258.   _BH = (unsigned char) attribe    ;
  259.   _CH = (unsigned char) startrow    ;
  260.   _CL = (unsigned char) startcol    ;
  261.   _DH = (unsigned char) endrow    ;
  262.   _DL = (unsigned char) endcol    ;
  263.   geninterrupt(0x10)    ;
  264. }
  265.  
  266.  
  267. now_cursor(x,y)
  268. int *x,*y;
  269. {  union REGS r;
  270.    r.h.ah=3;
  271.    r.h.bh=0;
  272.    int86(0x10,&r,&r);
  273.    *x = r.h.dh;
  274.    *y = r.h.dl;
  275.    return;
  276. }
  277.  
  278.  
  279.  
  280. movcur()
  281. {  union REGS regs;
  282.    regs.h.ah=19;
  283.    regs.h.al=0;
  284.    int86(0x10,®s,®s);
  285. }
  286.  
  287.  
  288.  
  289.  
  290. setcur()
  291. {  union REGS regs;
  292.    regs.h.ah=19;
  293.    regs.h.al=1;
  294.    int86(0x10,®s,®s);
  295. }
  296.  
  297.  
  298.  
  299. error()
  300. {
  301.    color_puts("###### ╩Σ╚δ┤φ╬≤! ╟δ╓╪╨┬╘┘╩Σ ######",12,23,15);
  302.    dela();
  303.    color_puts("                                   ",10,23,15);
  304. }
  305.  
  306.  
  307.  
  308.