home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <stdlib.h>
- #include <dos.h>
- #define pr(x) fprintf(fp,x)
- main(int argc,char *argv[])
- { FILE *fp;
- int choice,bb[3],j,row,col;
- char buff[60],p;
- if(argc<2)
- return;
- if((fp=fopen("dcopy.prg","r"))!=NULL)
- {
- clear_win(0,0,24,79,0) ;
- color_puts("╩²╛▌▒╕╖▌",14,2,2);
- color_puts("┤╦ ─ú ┐Θ ╥╤ ┤µ ╘┌,╩╟ ╖± ╓╪ ╨┬ ╔· │╔(Y/N)? ",14,12,20);
- cursor(13,35);
- scanf("%c",&p);
- if(p!='Y'&&p!='y')
- {
- fclose(fp);
- return;
- }
- fclose(fp);
- }
- bb[1]=0; bb[2]=0;
- clear_win(0,0,24,79,0x70) ;
- clear_win(9,24,18,54,0) ;
- clear_win(8,23,17,52,0x10) ;
- color_puts("========= ╩²╛▌▒╕╖▌ ==========",30,8,23) ;
- color_puts("1---╩² ╛▌ ┐Γ ▒╕ ╖▌",30,11,27) ;
- color_puts("2---╩² ╛▌ ═╝ ╨╬ ▒╕ ╖▌",30,13,27) ;
- color_puts("0---═╦ │÷",30,15,27) ;
- color_puts("==============================",30,17,23) ;
- color_puts("╟δ╩Σ╚δ─·╡─╤í╘±(0-2) [ ]",30,22,23) ;
- while((choice=get(0,2,22,44))!=0)
- if(choice==1)
- if(bb[1]==0)
- {
- bb[1]=1 ;
- color_puts("*",215,11,25) ;
- }
- else
- {
- bb[1]=0 ;
- color_puts(" ",30,11,25) ;
- }
- else
- if(bb[2]==0)
- {
- bb[2]=1 ;
- color_puts("*",215,13,25) ;
- }
- else
- {
- bb[2]=0 ;
- color_puts(" ",30,11,25) ;
- }
- if(bb[1]==0&&bb[2]==0)
- return;
- color_puts("╒²╘┌╔·│╔,╟δ╔╘║≥!",56,3,25);
- fp=fopen("dcopy.prg","w");
- pr("do while .T.\n");
- pr("set color to /W\nclear\n") ;
- pr("set color to /X\n@7,24 clear to 18,52\n") ;
- pr("set color to W+/B\n@6,22 clear to 17,50\n") ;
- fprintf(fp,"@6,22 say '============================'\n") ;
- pr("@17,22 say '============================'\n") ;
- pr("pase=' '\n");
- pr("@0,0 say '╩²╛▌▒╕╖▌'\n");
- pr("@8,28 say ' ╟δ╩Σ╚δ─·╡─╤í╘±'get pase\n");
- pr("@9,28 say '~~~~~~~~~~~~~~~~~~~'\nset color to W+/B\n");
- row=11; col=28; j=1;
- if(bb[1])
- { fprintf(fp,"@%d,%d say '%d ---╩² ╛▌ ┐Γ ▒╕ ╖▌'\n",row,col,j);
- j++;
- row=row+2;
- }
- if(bb[2])
- { fprintf(fp,"@%d,%d say '%d---╩² ╛▌ ═╝ ╨╬ ▒╕ ╖▌'\n",row,col,j);
- row=row+2;
- }
- fprintf(fp,"@%d,%d say '0---═╦ │÷'\n",row,col);
- pr("read\nset color to W+/b\n");
- if(bb[1]!=0&&bb[2]!=0)
- pr("do while at(pase,'012')=0\n");
- else
- pr("do while at(pase,'01')=0\n");
- pr("pase=' '\n");
- pr("@8,44 get pase\n");
- pr("read\n");
- pr("enddo\n");
- pr("if pase='0'\n");
- pr("return\n");
- pr("endif\n");
- pr("set color to /W\nclear\n");
- pr("set color to /X\n@7,22 clear to 18,52\n") ;
- pr("set color to W+/B\n@6,20 clear to 17,50\n") ;
- pr("@6,20 say '==============================='\n") ;
- pr("@17,20 say '==============================='\n") ;
- pr("rec=' '\n");
- pr("@8,25 say '╟δ ╤í ╘± ▓┘ ╫≈ ╖╜ ╩╜ ' get rec\n");
- pr("@9,21 say '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'\n");
- pr("set color to W+/B\n@11,24 say '1---╡Ñ ╕÷ ╬─ ╝■ ▒╕ ╖▌'\n");
- pr("@13,24 say '2---╚½ ▓┐ ╬─ ╝■ ▒╕ ╖▌'\n");
- pr("@15,24 say '0---═╦ │÷'\n");
- pr("read\nset color to W+/b\n");
- pr("do while at(rec,'012')=0\n");
- pr("rec=' '\n");
- pr("@8,47 get rec\n");
- pr("read\n");
- pr("enddo\n");
- pr("if rec<>'0'\n");
- pr("clear\nset color to W+/B\n");
- pr("@12,12 say '╟δ ─· ╜½ ╚φ ┼╠ ▓σ ╚δ A ╟² ╢» ╞≈,╚╗ ║≤ ┐¬ ╩╝ '\n");
- pr("wait\n");
- pr("endif\nset color to W+/B\n");
- pr("clear\n");
- pr("run c:\n");
- pr("do case\n");
- if(bb[1]==1)
- { pr("case pase='1'\n");
- pr("if rec='2'\n");
- fprintf(fp,"run copy %s*.dbf a:\n",argv[1]);
- /* fprintf(fp,"run copy %s*.ndx a:\n",argv[1]);
- fprintf(fp,"run copy %s*.mem a:\n",argv[1]);
- fprintf(fp,"run copy %s*.dbt a:\n",argv[1]);*/
- pr("endif\n");
- pr("if rec='1'\n");
- pr("wx=.T.\n");
- pr("do while wx\n");
- pr("set color to w+/B\n@2,25 say '╟δ╤í╘±╦∙╨Φ▓┘╫≈┐Γ'\n");
- pr("set color to W+/B\nname=' '\n");
- pr("flag=0\ncoflag=' '\n") ;
- pr("do dbfmenu with name,flag,coflag\n");
- pr("if name='0'\n");
- pr("wx=.F.\n");
- pr("clear\n");
- pr("else\n");
- pr("clear\n");
- fprintf(fp,"vdbf='%s'+trim(name)+'.dbf'\n",argv[1]);
- /* fprintf(fp,"ind='%s'+trim(name)+'.ndx'\n",argv[1]);*/
- pr("run copy &vdbf a:\n");
- /* pr("run copy &ind a:\n");*/
- pr("tt=' '\n");
- pr("do while tt<>'Y' .AND.tt<>'N'\n");
- pr("@12,12 say '╗╣ ╥¬ ╝╠ ╨° ┬≡ ? (Y/N) ' get tt pict '!'\n");
- pr("read\n");
- pr("enddo\n");
- pr("if tt='N'\n");
- pr("wx=.F.\n");
- pr("endif\n");
- pr("endif\n");
- pr("enddo\n");
- pr("endif\n");
- }
- if(bb[2]!=0)
- { if (bb[1]!=0)
- pr("case pase='2'\n");
- else
- pr("case pase='1'\n");
- pr("@12,12 say 'I dont know'\n");
- }
- pr("endcase\n");
- pr("enddo\n");
- fclose(fp);
- }
-
-
-
-
-
- dela()
- { int i,j;
- for (i=0;i<10;i++)
- for (j=-30000;j<30000;j++) ;
- }
-
-
-
- getcc()
- { union REGS r;
- r.h.ah=0;
- int86(0x16,&r,&r);
- if (r.h.al==27) exit(0);
- if (r.h.al) return(r.h.al);
- return(r.x.ax);
- }
-
-
-
- get(i,j,row,col)
- int i,j,row,col;
- { int key,c,n=0;
- cursor(row,col);
- printf(" ");
- cursor(row,col);
- while ((key=getcc())!=0x0D)
- { putchar(key);
- switch (key)
- { case 18432 : return('u');
- case 18688 : return('U');
- case 20480 : return('d');
- case 20736 : return('D');
- case 15104 : return('H');
- case 8 : if (n!=0) n=n/10;
- else { error(); cursor(row,col); }
- break;
- default : n=10*n+key%256-'0';
- break;
- }
- }
- if ((n>j||n<=i)&&n!=0) { error();
- get(i,j,row,col);
- }
- else return(n);
- }
-
-
- cursor(int y, int x)
- {
- _DH = (unsigned char)y ;
- _DL = (unsigned char)x ;
- _AH = (unsigned char)2 ;
- _BH = (unsigned char)0 ;
- geninterrupt(0x10) ;
- }
-
- color_puts(char *string, int color, int row, int col)
- {
- _SI = (unsigned int) string ;
- _DH = (unsigned char) row ;
- _DL = (unsigned char) col ;
- _CX = 1 ;
- while(*(( char * ) _SI))
- {
- _AH = (unsigned char) 2 ;
- _BH = (unsigned char) 0 ;
- __int__(0x10) ;
- ++_DL ;
-
- _AH = (unsigned char) 9 ;
- _AL = *((char *)_SI) ;
- _SI++ ;
- _BH = (unsigned char) 0 ;
- _BL = (unsigned char) color ;
- __int__(0x10) ;
- }
- }
-
-
- clear_win(startrow,startcol,endrow,endcol,attribe)
- int startrow,startcol;
- int endrow,endcol;
- int attribe;
- {
- _AH = (unsigned char) 6 ;
- _AL = (unsigned char) 0 ;
- _BH = (unsigned char) attribe ;
- _CH = (unsigned char) startrow ;
- _CL = (unsigned char) startcol ;
- _DH = (unsigned char) endrow ;
- _DL = (unsigned char) endcol ;
- geninterrupt(0x10) ;
- }
-
-
- now_cursor(x,y)
- int *x,*y;
- { union REGS r;
- r.h.ah=3;
- r.h.bh=0;
- int86(0x10,&r,&r);
- *x = r.h.dh;
- *y = r.h.dl;
- return;
- }
-
-
-
- movcur()
- { union REGS regs;
- regs.h.ah=19;
- regs.h.al=0;
- int86(0x10,®s,®s);
- }
-
-
-
-
- setcur()
- { union REGS regs;
- regs.h.ah=19;
- regs.h.al=1;
- int86(0x10,®s,®s);
- }
-
-
-
- error()
- {
- color_puts("###### ╩Σ╚δ┤φ╬≤! ╟δ╓╪╨┬╘┘╩Σ ######",12,23,15);
- dela();
- color_puts(" ",10,23,15);
- }
-
-
-