home *** CD-ROM | disk | FTP | other *** search
- #include<stdio.h>
- #include<stdlib.h>
- #include <alloc.h>
- #include<dos.h>
- #define pr(x) fprintf(fp,x)
- #define MAXP 10
- #define CONT 20
- #define CB 14
- typedef struct bb{
- char MEAN[21],DB[9],KEY[4][11],COFLAG,COPATH[11];
- int no;
- struct bb *next;
- }BASE;
- typedef struct cc {
- char field[128][11],ftype[128];
- int len1[128];
- int NN;
- int no;
- struct cc *next;
- }CONTENT;
- typedef struct ll {
- int MAR[9][128];
- int no;
- struct ll *next;
- }LINK;
- LINK *flink, *mylink;
- BASE *fbase;
- CONTENT *fcon;
- char *explain="***│╔┼·╩²╛▌╨▐╕─***";
- int NB,repeat,I,J,II,JJ,linkflag;
- char lname[5][31],PATH[31];
- /**/char lnamebak[5][3][11];
-
- main(int argc,char *argv[])
- {
- FILE *fp;
- int road[30][6],i=0,fs[30],aa,j,modi_ctc;
- char buff[60] ;
- int p,k ;
- BASE *mybase;
- CONTENT *mycon;
- static char dname[30][20] ;
-
- if(argc<2)
- return;
- strcpy(PATH,argv[1]);
- fp=fopen("creat\\meno1.txt","w");
- fclose(fp);
- fp=fopen("creat\\meno2.txt","w");
- fclose(fp);
- i=0;
- if ((fp = fopen("creat\\pmod.txt", "r"))!=NULL)
- {
- fscanf(fp,"%d\n",&i) ;
- for(p=0; p<i; p++)
- fscanf(fp,"%s",dname[p]) ;
- }
- getbase();
- /* getcontent(argv[1]);*/
- modi_ctc=i;
- for(;;)
- {
- clear_win(0,0,24,79,0x70);
- clear_win(8,22,14,62,0);
- clear_win(7,20,13,60,30);
- color_puts("─· ╥╤ ╔· │╔ ┴╦ ╕÷ ▓┘ ╫≈ ─ú ┐Θ",30,8,24);
- cursor(8,39);
- printf("%d",modi_ctc);
- color_puts("╟δ ╩Σ ╚δ ─· ╜½ ╨▐ ╕─ ╔· │╔ ─ú ┐Θ",30,9,24);
- color_puts("╡─ ╨≥ ║┼ (0 ╬¬ ═╦ │÷, ┤≤ ╙┌ ",30,10,24);
- printf("%d",modi_ctc);
- color_puts("╘≥ ╠φ ╝╙ ╔· │╔,╖± ╘≥,╨▐ ╕─ ╔· │╔",30,11,24);
- cursor(12,40);
- scanf("%d",&i);
- if (i==0) break;
- if (i>modi_ctc) modi_ctc++;
- i=(i>modi_ctc)?(modi_ctc-1):i-1;
- if((aa=getroad(argv[1],road[i],i))!=0)
- {
- if(aa==1)
- { /*j=0;
- mybase=fbase;
- while(mybase->no!=(road[i][0]-1))
- mybase=mybase->next;
- while (mybase->MEAN[j]!='\0')
- dname[i][j]=mybase->MEAN[j++];
- dname[i][j]='\0';*/
- clear_win(15,36,19,72,0) ;
- clear_win(14,34,18,70,0|53) ;
- color_puts("╢¿╥σ┴¼╜╙┐Γ╡─╩╢▒≡├√(╫ε╢α20╕÷╫╓╖√): ",0|53,15,36) ;
- color_puts(" ",0|53,17,40) ;
- cursor( 17, 43 ) ;
- scanf("%s",dname[i]);
- }
- else
- deflink(road[i],dname[i]);
- getm(&aa);
- if(aa!=0)
- {
- if(aa==2) get_dc(road[i]);
- if(aa==3) get_fc(road[i]);
- fs[i]=aa;
- }
- cr_sub7(road[i],i,fs[i],PATH);
- i++;
- free(flink);
- mycon=fcon;
- while (fcon!=NULL)
- {
- fcon=fcon->next;
- mycon->next=NULL;
- free(mycon);
- mycon=fcon;
- }
- }
- else break;
- }
- i=modi_ctc;
- system("cls");
- cursor(12,20);
- printf("╒²╘┌╔·│╔│╔┼·╩²╛▌╨▐╕─│╠╨≥,╟δ╔╘║≥!");
- replace();
- repd();
- cr_sub71(dname,i);
-
- fp = fopen("creat\\pmod.txt","w") ;
- fprintf(fp,"%d\n",i) ;
- for(k=0; k<i; k++)
- fprintf(fp,"%s\n",dname[k]) ;
- fclose(fp) ;
-
-
- }
-
- getm(int *ii)
- {
- int cc;
- char dd;
- clear_win(0,0,24,79,0) ;
- color_puts(explain,14,2,2);
- for(;;)
- {
- clear_win(0,0,24,80,0x70) ;
- color_puts(explain,90,2,3);
- clear_win(10,17,18,52,0) ;
- clear_win(9,15,17,50,0x10) ;
- color_puts("====== ╟δ╨▐╕─╩Σ╚δ╖╜╩╜ [ ] ======",30,9,15);
- color_puts("1. ╦∙ ╙╨ ╝╟ ┬╝",30,11,23) ;
- color_puts("2. ╣╠ ╢¿ ╠⌡ ╝■",30,12,23) ;
- color_puts("3. ╫Θ ║╧ ╠⌡ ╝■",30,13,23) ;
- color_puts("4. ╚╬ ╥Γ ╠⌡ ╝■",30,14,23) ;
- color_puts("0. ═╦ │÷ ",30,15,23) ;
- color_puts("====================================",30,17,15);
- cc=get((long)0,(long)4,9,39);
- color_puts("─π─▄╚╖╚╧┬≡? (Y/N) [ ]",30,20,20);
- cursor(20,39);
- dd=readchar(); /*scanf("%c",&dd);*/
- if(dd=='y'||dd=='Y')
- break;
- }
- *ii=cc;
- }
-
-
- cr_sub7(s,i,fs,aarr)
- int i,*s,fs;
- char *aarr;
- {FILE *fp,*dp,*tp;
- char name[15],buff[130],nname[15],cname[15],tname[5];
- int j,k,l,ii,ll,jj,kk,la,lb,lla,llb,row,col,m,n;
- BASE *mybase;
- CONTENT *mycon;
- dp=fopen("creat\\meno2.txt","r");
- tp=fopen("creat\\meno1.txt","r");
- if (i+1<10) {tname[0]='1'+i;tname[1]='\0';}
- if (i+1>9) {tname[0]='0'+(i+1)/10; tname[1]='0'+(i+1)%10; tname[2]='\0';}
- strcpy(name,"psub"); strcat(name,tname); strcat(name,".prg");
- strcpy(nname,"tpn"); strcat(nname,tname); strcat(nname,".prg");
- strcpy(cname,"chg"); strcat(cname,tname); strcat(cname,".prg");
- k=i;
- fp=fopen(name,"w");
- j=0;
- pr("clear\nset color to w+/B\n");
- n=s[0]-1;
- mybase=fbase;
- while(mybase->no!=n)
- mybase=mybase->next;
- if( mybase->COFLAG == 'Y' || mybase->COFLAG == 'y')
- fprintf(fp,"sele A\nuse %s%s\ncopy to s%s stru exte\n",mybase->COPATH,mybase->DB,mybase->DB);
- else
- fprintf(fp,"sele A\nuse %s%s exclusive\ncopy to s%s stru exte\n",aarr,mybase->DB,mybase->DB) ;
- fprintf(fp,"sele 10\nuse %sndx\n",aarr);
- j=1;
- while(s[j]!=0)
- {
- mybase=fbase;
- while(mybase->no!=(s[j]-1))
- mybase=mybase->next;
- fprintf(fp,"sele 10\ngo top\n");
- /* fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
- fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
- fprintf(fp,"select %c\n",j+1+64);*/
- if( mybase->COFLAG != 'Y' && mybase->COFLAG != 'y')
- {
- fprintf(fp,"sele 10\n use %sndx exclusive\ngo top\n",aarr);
- fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
- fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
- fprintf(fp,"select %c\n",j+65);
- fprintf(fp,"use %s%s inde %s&nf exclusive\naflag%c=1\n",aarr,mybase->DB,aarr,s[j]+64) ;
- }
- else
- {
- fprintf(fp,"sele 10\n use %sndx \ngo top\n",mybase->COPATH);
- fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
- fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
- fprintf(fp,"select %c\n",j+65);
- fprintf(fp,"use %s%s inde %s&nf\naflag%c=1\n",mybase->COPATH,mybase->DB,mybase->COPATH,s[j]+64) ;
- fprintf(fp,"sele 10\nuse %sndx exclusive\n",aarr) ;
- }
- fprintf(fp,"copy to s%s stru exte\n",mybase->DB);
- if (linkflag==0)
- fprintf(fp,"sele A\nset rela to %s into %c \n",lname[j-1],j+65);
- else
- fprintf(fp,"sele %c\nset rela to %s into %c addi\n",j+64,lname[j-1],j+65);
- j++;
- }
- fprintf(fp,"goon=.t.\n");
- repn(j,k,s,nname);
- change(j,k,cname,s,nname,lname);
- if(k==3)
- k=3;
- if(fs==1)
- {pr("condition='.T.'\n");
- pr("rr='Y'\n");
- pr("do while rr='Y'\n");
- pr("@1,1 say '╨▐ ╕─ ╦∙ ╙╨ ╝╟ ┬╝ '\n");
- cfield(k,j,s,fp);
- pr("@3,0 clear to 24,79\n");
- pr("go renu\n");
- pr("fl=FIELD_LEN\n");
- pr("ft=FIELD_TYPE\n");
- pr("fname=FIELD_NAME\n");
- fprintf(fp,"do %s with ft,fl,fname,condition\n",cname);
- pr("rr=' '\n");
- pr("@3,0 clear to 24,70\n");
- pr("@14,20 say '╗╣╥¬╨▐╕─╞Σ╦ⁿ╫╓╢╬┬≡? ' get rr picture '!'\n");
- pr("read\n");
- pr("enddo\nset color to W+/B\n");
- }
- if(fs==2)
- {
- while(fgets(buff,120,dp))
- { if(buff[1]=='#') break;
- l=0;
- color_puts("please assure condition :", 0x56,24,0) ;
- line_edit(24,25,31,buff,60) ;
- while(buff[l]!='\n') l++;
- buff[l]='\0';
- fprintf(fp,"condition=\"%s\"\n",buff);
- pr("rr='Y'\n");
- pr("do while rr='Y'\n");
- fprintf(fp,"@1,1 say \"╕ⁿ ╨┬ %s ╡─ ╝╟ ┬╝\"\n",buff);
- cfield(k,j,s,fp);
- pr("@3,0 clear to 24,79\n");
- pr("go renu\n");
- pr("fl=FIELD_LEN\n");
- pr("ft=FIELD_TYPE\n");
- pr("fname=FIELD_NAME\n");
- fprintf(fp,"do %s with ft,fl,fname,condition\n",cname);
- pr("rr=' '\n");
- pr("@3,0 clear to 24,79\n");
- pr("@14,20 say '╗╣╥¬╨▐╕─╞Σ╦ⁿ╫╓╢╬┬≡? ' get rr picture '!'\n");
- pr("read\n");
- pr("enddo\n");
- }
- }
- if(fs==3)
- {
- while(fgets(buff,120,tp))
- { if(buff[1]=='#') break;
- mcon(fp,buff);
- pr("rr='Y'\n");
- pr("do while rr='Y'\n");
- pr("@1,1 say '╕ⁿ ╨┬ ╫Θ ║╧ ╠⌡ ╝■ ╝╟ ┬╝ '\n");
- cfield(k,j,s,fp);
- pr("@3,0 clear to 24,79\n");
- pr("go renu\n");
- pr("fl=FIELD_LEN\n");
- pr("ft=FIELD_TYPE\n");
- pr("fname=FIELD_NAME\n");
- fprintf(fp,"do %s with ft,fl,fname,condition\n",cname);
- pr("rr=' '\n");
- pr("@3,0 clear to 24,79\n");
- pr("@14,20 say '╗╣╥¬╨▐╕─╞Σ╦ⁿ╫╓╢╬┬≡? ' get rr picture '!'\n");
- pr("read\n");
- pr("enddo\n");
- }
- }
- if(fs==4)
- {
- pr("set color to w+/B\n@0,0 say '╚╬╥Γ╠⌡╝■'\n");
- pr("condition=''\n");
- pr("cb=1\n");
- pr("cs=.t.\n");
- pr("do while cs\n");
- rcon(k,j,s,fp);
- pr("clear\n");
- pr("do rcon with renu,cb,condition,cs\n");
- pr("enddo\n");
- pr("rr='Y'\n");
- pr("do while rr='Y'\n");
- pr("@1,1 say '╨▐ ╕─ '+condition+' ╡─ ╝╟ ┬╝ '\n");
- cfield(k,j,s,fp);
- pr("@3,0 clear to 24,79\n");
- pr("go renu\n");
- pr("fl=FIELD_LEN\n");
- pr("ft=FIELD_TYPE\n");
- pr("fname=FIELD_NAME\n");
- fprintf(fp,"do %s with ft,fl,fname,condition\n",cname);
- pr("rr=' '\n");
- pr("@3,0 clear to 24,79\n");
- pr("@14,20 say '╗╣╥¬╨▐╕─╞Σ╦ⁿ╫╓╢╬┬≡? ' get rr picture '!'\n");
- pr("read\n");
- pr("enddo\n");
- }
- /*** fprintf(fp,"sele 10\nuse ndx\n");****/
- fprintf(fp,"sele 10\nuse %sndx\n",aarr) ;
- j=0;
- while(s[j]!=0)
- {
- mybase=fbase;
- while(mybase->no!=(s[j]-1))
- mybase=mybase->next;
- fprintf(fp,"sele 10\ngo top\n");
- fprintf(fp,"loca for trim(┐Γ├√)='%s'\n",mybase->DB);
- fprintf(fp,"do while .not.eof()\nnf=trim(╦≈╥²╬─╝■)\n");
- fprintf(fp,"select %c\n",j+1+64);
- if( mybase->COFLAG == 'Y' || mybase->COFLAG == 'y' )
- fprintf(fp,"use %s%s inde %s&nf exclusive\nreinde\nuse\nsele 10\ncontinue\nenddo\n",
- mybase->COPATH,mybase->DB,mybase->COPATH) ;
- else
- fprintf(fp,"use %s%s inde %s&nf exclusive\nreindex\nuse\nsele 10\ncontinue\nenddo\n",
- aarr,mybase->DB,aarr) ;
- j++;
- }
- pr("return\n");
- fclose(fp);
- fclose(dp);
- fclose(tp);
- }
-
-
-
-
- replace()
- { FILE *fp;
- fp=fopen("ty_cl.prg","w");
- pr("parameters fname,value\n");
- pr("pp='╧╓╘┌╠µ╗╗ '+fname+'╫╓╢╬ '\n");
- pr("set color to w+/B\n@5,10 say pp\n");
- pr("y=.T.\n");
- pr("do while y\nset color to w+/b\n");
- pr("@10,20 say ' ╟δ╩Σ╚δ╠µ╗╗║≤╡─╓╡ ' get value\n");
- pr("read\n");
- pr("yy=' '\n");
- pr("@23,20 say '─·─▄╚╖╚╧┬≡ ?' get yy\n");
- pr("read\n");
- pr("if upper(yy)='Y'\n");
- pr("y=.F.\n");
- pr("endif\nset color to W+/b\n");
- pr("enddo\n");
- pr("return\n");
- fclose(fp);
- }
-
- repd()
- {
- FILE *fp;
- fp=fopen("tyd.prg","w");
- pr("parameters fname,value,k1,sy\n");
- pr("pp='╧╓╘┌╠µ╗╗ '+fname+'╫╓╢╬ '\n");
- pr("set color to w+/B\n@5,10 say pp\n");
- pr("y=.T.\n");
- pr("do while y\nset color to W+/B\n");
- pr("@19,5 to 22,74 double\n");
- pr("@20,10 say '╒Γ╩╟╚╒╞┌╨═╫╓╢╬,╓╗─▄╜°╨╨(+/-)╘╦╦π,╗≥╠µ╗╗(0)'\n");
- pr("symbol=' '\n");
- pr("do while symbol<>'+' .AND. symbol<>'-' .AND. symbol<>'0'\n");
- pr("set color to w+/b\n@21,10 say '╟δ╩Σ╚δ─·╡─▓┘╫≈ ' get symbol\n");
- pr("read\n");
- pr("if symbol='+'\n");
- pr(" sy='╝╙'\n");
- pr("else\n");
- pr(" if symbol='-'\n");
- pr(" sy='╝⌡'\n");
- pr(" else\n");
- pr(" sy='╠µ╗╗'\n");
- pr("endif\n");
- pr("endif\nset color to W+/b\n");
- pr("enddo\n");
- pr("if symbol='0'\n");
- pr("set color to w+/b\n@10,20 say ' ╟δ╩Σ╚δ╠µ╗╗║≤╡─╓╡ ' get k1\n");
- pr("read\n");
- pr("else\n");
- pr("@10,20 say ' '+sy+':' get value picture '99999'\n");
- pr("@10,31 say '╠∞'\n");
- pr("read\n");
- pr("endif\n");
- pr("yy=' '\n");
- pr("@23,20 say '─·─▄╚╖╚╧┬≡ ?' get yy\n");
- pr("read\n");
- pr("if upper(yy)='Y'\n");
- pr("y=.F.\n");
- pr("endif\n");
- pr("set color to W+/b\n@10,0 clear\n");
- pr("enddo\n");
- pr("return\n");
- fclose(fp);
- }
-
-
-
- repn(int j,int k,int *s,char *nname)
- {
- FILE *fp;
- fp=fopen(nname,"w");
- pr("parameters expr,value,fname\n");
- pr("yy='N'\n");
- pr("do while yy<>'Y'\n");
- pr("set color to /W\nclear\n") ;
- pr("expr=''\n");
- pr("@4,0 clear to 17,79\n");
- pr("pp='╧╓╘┌╠µ╗╗ '+fname+'╫╓╢╬ '\n");
- pr("set color to w+/B\n@5,10 say pp\n");
- pr("set color to /N\n@8,14 clear to 16,70\n") ;
- pr("set color to W+/B\n@7,12 clear to 15,68\n") ;
- pr("set color to w+/B\n") ;
- pr("@9,19 say '╕├╫╓╢╬╩╟╩²╫╓╨═,─·┐╔╙├╩²╫╓,╥▓┐╔╙├▒φ┤∩╩╜╠µ╗╗'\n");
- pr("@10,19 say '╫ó╥Γ: D---╚╒╞┌╨═, N---╩²╫╓╨═ '\n");
- pr("@11,19 say '▒φ┤∩╩╜╓╨╚╒╞┌╨═╓╗─▄╙δ╚╒╞┌╨═╫≈╝⌡ (-) ▓┘╫≈ ,'\n");
- pr("@12,19 say '╟δ╩Σ╚δ─·╡─▓┘╫≈: 1---╙├╩²╫╓╠µ╗╗'\n");
- pr("@13,19 say ' 2---╙├▒φ┤∩╩╜╠µ╗╗'\n");
- pr("choice=0\n");
- pr("do while choice<>2 .AND. choice<>1\n");
- pr("@15,40 get choice picture '9'\n");
- pr("read\n");
- pr("enddo\nset color to w+/b\n");
- pr("do case\n");
- pr("case choice=1\n");
- pr("@7,0 clear to 15,79\n");
- pr("@12,20 say '╟δ ╩Σ ╚δ ╩² ╛▌ ' get value picture '999999'\n");
- pr("read\n");
- pr("case choice=2\n");
- pr("@5,0 clear to 17,0\n");
- pr("@3,0 say '╙├ ▒φ ┤∩ ╩╜ ╠µ ╗╗'\n");
- expression(k,j,s,fp);
- pr("endcase\n");
- pr("yy=' '\n");
- pr("@23,20 say '─·─▄╚╖╚╧┬≡ ?' get yy picture '!'\n");
- pr("read\nset color to W+/b\n");
- pr("@23,20 clear\n");
- pr("enddo\n");
- fclose(fp);
- }
-
-
-
- cfield(int k,int j,int *s,FILE *fp)
- { int row,col,l,ll;
- BASE *mybase;
- CONTENT *mycon;
- pr("ccs=.t.\n");
- pr("cb=1\n");
- pr("do while ccs\n");
- pr("do case\n");
- for(l=1;l<=j;l++)
- { fprintf(fp,"case cb=%d\n",l);
- pr("select 10\n");
- pr("name='s'\n");
- mybase=fbase;
- mycon=fcon;
- while(mybase->no!=(s[l-1]-1)) mybase=mybase->next;
- while(mycon->no!=(s[l-1]-1)) mycon=mycon->next;
- /* {
- mybase=mybase->next;
- mycon=mycon->next;
- }*/
- fprintf(fp,"name=name+'%s'\n",mybase->DB);
- pr("use &name exclusive\n");
- if(mycon->NN>68)
- { pr("@5,0 clear to 21,79\n");
- pr("cf=1\n");
- pr("cc=.t.\n");
- pr("do while cc\n");
- pr("renu=0\n");
- pr("do case\n");
- pr("case cf=1\n");
- row=5; col=5;
- for(ll=0;ll<68;ll++)
- { fprintf(fp,"@%d,%d say '%2d.%s'\n",row,col,ll+1,mycon->field[ll]);
- if(col==65) { row++;col=5;}
- else col+=20;
- }
- pr("skeyboar=' '\n");
- pr("@22,0 say '╩╣╙├ PgUp,PgDn ╤í╘±▓┘╫≈┐Γ,íⁿ/í² ╤í╘±▒╛┐Γ╞Σ╙α╫╓╢╬'\n");
- pr("@23,0 say '╗≥╤í╘±╫╓╢╬(1--68)╫≈╬¬╨▐╕─╫╓╢╬'\n");
- pr("read\n");
- pr("i=readkey()\n");
- pr("do case\n");
- pr("case i=6 .or. i=7\n");
- pr("ccs=.f.\n");
- pr("cc=.f.\n");
- pr("if i=7\n");
- pr("cb=cb+1\n");
- fprintf(fp,"if cb>%d\n",j);
- pr("cb=1\n");
- pr("endif\n");
- pr("else\n");
- pr("cb=cb-1\n");
- pr("if cb=0\n");
- pr("cb=1\n");
- pr("endif\n");
- pr("endif\n");
- pr("case i=5 .or. i=4\n");
- pr("cf=2\n");
- pr("case skeyboar>'0' .or. skeyboar<'69'\n");
- pr("renu=val(skeyboar)\n");
- pr("cc=.f.\n");
- pr("endcase\n");
- pr("case cf=2\n");
- pr("@5,0 clear to 21,79\n");
- row=5;col=5;
- for(ll=68;ll<mycon->NN;ll++)
- { fprintf(fp,"@%d,%d say '%3d.%s'\n",row,col,ll+1,mycon->field[ll]);
- if(col==65) { row++;col=5;}
- else col+=20;
- }
- pr("skeyboar=' '\n");
- pr("@22,0 say '╩╣╙├ PgUp,PgDn ╤í╘±▓┘╫≈┐Γ'\n");
- fprintf(fp,"@23,0 say '╗≥╤í╘±╫╓╢╬ (68--%d) ╫≈╬¬╨▐╕─╫╓╢╬ ' get skeyboar\n",mycon->NN);
- pr("read\n");
- pr("i=readkey\n");
- pr("do case\n");
- pr("case i=6 .or. i=7\n");
- pr("cc=.f\n");
- pr("if i=7\n");
- pr("cb=cb+1\n");
- fprintf(fp,"if cb>%d\n",j);
- pr("cb=1\n");
- pr("else\n");
- pr("cb=cb-1\n");
- pr("if cb=0\n");
- pr("cb=1\n");
- pr("endif\n");
- pr("endif\n");
- pr("case i=5 .or. i=4\n");
- pr("cf=1\n");
- fprintf(fp,"case skeyboar>'68' .or. skeyboar<='%d'\n",mycon->NN);
- pr("renu=val(skeyboar)\n");
- pr("ccs=.f.\n");
- pr("cc=.f\n");
- pr("endcase\n");
- pr("endcase\n");
- pr("enddo\n");
- }
- else
- { pr("@5,0 clear to 21,79\n");
- row=5;col=5;
- for(ll=0;ll<mycon->NN;ll++)
- { fprintf(fp,"@%d,%d say '%2d.%s'\n",row,col,ll+1,mycon->field[ll]);
- if(col==65) { row++;col=5;}
- else col+=20;
- }
- pr("skeyboar=' '\n");
- pr("@22,0 say '╩╣╙├ PgUp,PgDn ╤í╘±▓┘╫≈┐Γ'\n");
- fprintf(fp,"@23,0 say '╗≥╤í╘±╫╓╢╬ (1--%d) ╫≈╬¬╨▐╕─╫╓╢╬ ' get skeyboar\n",mycon->NN);
- pr("read\n");
- pr("i=readkey()\n");
- pr("do case\n");
- pr("case i=6 .or. i=7\n");
- pr("if i=7\n");
- pr("cb=cb+1\n");
- fprintf(fp,"if cb>%d\n",j);
- pr("cb=1\n");
- pr("endif\n");
- pr("else\n");
- pr("cb=cb-1\n");
- pr("if cb=0\n");
- pr("cb=1\n");
- pr("endif\n");
- pr("endif\n");
- fprintf(fp,"case skeyboar>='1' .or. skeyboar<='%d'\n",mycon->NN);
- pr("ccs=.f.\n");
- pr("renu=val(skeyboar)\n");
- pr("endcase\n");
- }
- }
- pr("endcase\n");
- pr("enddo\n");
- }
-
-
-
- expression(int k,int j,int *s,FILE *fp)
- { int row,col,l,ll;
- BASE *mybase;
- CONTENT *mycon;
- pr("do while .T.\n");
- pr("pp='╧╓╘┌╠µ╗╗ '+fname+'╫╓╢╬ '\n");
- pr("@1,54 say pp\n");
- pr("@4,10 say expr\n");
- pr("@5,0 clear to 20,79\n");
- pr("ty=' '\n");
- pr("do while ty<>'0' .AND. ty<>'1' .AND. ty<>'2' .AND. ty<>'3'\n");
- pr("set color to /W\nclear\n") ;
- pr("set color to /N\n@9,22 clear to 16,57\n") ;
- pr("set color to W/B\n@8,20 clear to 15,55\n") ;
- pr("set color to w+/B\n") ;
- pr("@10,30 say '1. ╩Σ ╚δ ╩² ╛▌ '\n");
- pr("@11,30 say '2. ╩Σ ╚δ ▒Σ ┴┐ '\n");
- pr("@12,30 say '3. ╩Σ ╚δ ('\n");
- pr("@13,30 say '0.EXIT '\n");
- pr("@22,20 say '╟δ ╩Σ ╚δ ▓┘ ╫≈ ╖╜ ╩╜ 'get ty\n");
- pr("read\n");
- pr("enddo\n");
- pr("if ty='0'\n");
- pr("exit\n");
- pr("endif\n");
- pr("if ty='3'\n");
- pr("expr=expr+'('\n");
- pr("loop\n");
- pr("endif\n");
- pr("if ty='1'\n");
- pr("@5,0 clear to 22,79\n");
- pr("vv=space(10)\n");
- pr("@10,20 say '╟δ ╩Σ ╚δ ╩² ╛▌' get vv \n");
- pr("read\n");
- pr("expr=expr+trim(vv)\n");
- pr("else\n");
- pr("ccs=.t.\n");
- pr("cb=1\n");
- pr("do while ccs\n");
- pr("do case\n");
- for(l=1;l<=j;l++)
- { fprintf(fp,"case cb=%d\n",l);
- pr("@5,0 clear to 21,79\n");
- pr("select 10\n");
- pr("name='s'\n");
- mybase=fbase;
- mycon=fcon;
- while(mybase->no!=(s[l-1]-1)) mybase=mybase->next;
- while(mycon->no!=(s[l-1]-1)) mycon=mycon->next;
- /* while(mybase->no!=(s[l-1]-1))
- {
- mybase=mybase->next;
- mycon=mycon->next;
- }*/
- fprintf(fp,"name=name+'%s'\n",mybase->DB);
- pr("use &name exclusive\n");
- pr("go top\n");
- pr("row=5\n");
- pr("col=5\n");
- pr("num=1\n");
- pr("do while .NOT. eof()\n");
- pr("fftt=FIELD_TYPE\n");
- pr("if fftt='N' .OR. fftt='D'\n");
- pr("@row,col say str(num,2,0)\n");
- pr("vv='.'+FIELD_NAME+'('+FIELD_TYPE+')'\n");
- pr("@row,col+2 say vv\n");
- pr("if col=65\n");
- pr("col=5\n");
- pr("row=row+1\n");
- pr("else\n");
- pr("col=col+20\n");
- pr("endif\n");
- pr("endif\n");
- pr("num=num+1\n");
- pr("skip\n");
- pr("enddo\n");
- pr("skeyboar=' '\n");
- pr("@22,0 say '╩╣╙├ PgUp,PgDn ╤í╘±▓┘╫≈┐Γ'\n");
- fprintf(fp,"@23,0 say '╗≥╤í╘±╫╓╢╬ (1--%d) ╫≈╬¬▓┘╫≈╫╓╢╬ ' get skeyboar\n",mycon->NN);
- pr("read\n");
- pr("i=readkey()\n");
- pr("do case\n");
- pr("case i=6 .or. i=7\n");
- pr("if i=7\n");
- pr("cb=cb+1\n");
- fprintf(fp,"if cb>%d\n",j);
- pr("cb=1\n");
- pr("endif\n");
- pr("else\n");
- pr("cb=cb-1\n");
- pr("if cb=0\n");
- pr("cb=1\n");
- pr("endif\n");
- pr("endif\n");
- fprintf(fp,"case skeyboar>='1' .or. skeyboar<='%d'\n",mycon->NN);
- pr("renu=val(skeyboar)\n");
- pr("go renu\n");
- pr("if eof() .OR. FIELD_TYPE <>'N'\n");
- pr("@23,0 say '╩Σ ╚δ ┤φ ! └α ╨═ ▓╗ ╞Ñ ┼Σ'\n");
- pr("else\n");
- pr("ccs=.f.\n");
- pr("b=asc('A')+cb-1\n");
- pr("b=chr(b)\n");
- pr("expr=expr+b+'->'+FIELD_NAME\n");
- pr("endif\n");
- pr("endcase\n");
- }
- pr("endcase\n");
- pr("enddo\n");
- pr("endif\n");
- pr("ii=.T.\n");
- pr("do while ii\n");
- pr("@4,10 say expr\n");
- pr("@5,0 clear to 24,79\n");
- pr("@10,20 say '─· ┐╔ ╩Σ ╚δ ╧┬ ┴╨ ╫╓ ╖√:'\n");
- pr("@12,30 say '+ , -'\n");
- pr("@13,30 say '* , /'\n");
- pr("@14,30 say ') , 0: ═╦│÷'\n");
- pr("@11,20 to 16,60 double\n");
- pr("cc=' '\n");
- pr("@17,30 say '╟δ ╩Σ ╚δ !'get cc\n");
- pr("read\n");
- pr("if cc='0'\n");
- pr("ii=.F.\n");
- pr("endif\n");
- pr("if AT(cc,'+-*/)')<>0\n");
- pr("expr=expr+cc\n");
- pr("ii=.F.\n");
- pr("endif\n");
- pr("if cc=')'\n");
- pr("ii=.T.\n");
- pr("endif\n");
- pr("enddo\n");
- pr("if cc='0'\n");
- pr("exit\n");
- pr("endif\n");
- pr("enddo\n");
- }
-
-
-
-
-
- change(int j,int k,char *cname,int *s,char *nname)
- {
- FILE *fp;
- int kk;
- BASE *mybase;
- fp=fopen(cname,"w");
- pr("parameters ft,fl,fname,condition\n");
- /**/ pr("set proc to proced\n");
- pr("do case\n");
- pr("case ft='C' .OR. ft='L'\n");
- pr("value=space(fl)\n");
- pr("use\n");
- pr("do ty_cl with fname,value\n");
- pr("select 1\n");
- pr("go top\n");
- pr("do while .NOT. eof()\n");
- pr("if goon\n");
- pr("if &condition\n");
- for(kk=0;kk<j;kk++)
- {
- mybase=fbase;
- while(mybase->no!=(s[kk]-1))
- mybase=mybase->next;
- fprintf(fp,"sname='S'+'%s'\n",mybase->DB);
- pr("select 10\n");
- pr("use &sname exclusive\n");
- pr("go top\n");
- pr("locate for FIELD_NAME=fname\n");
- pr("if .NOT. eof()\n");
- fprintf(fp,"select %d\n",kk+1);
- /***/ pr("do rlock24\n") ;
- pr("replace &fname with value \n");
- /***/ pr("unlock\n");
- pr("endif\n");
- }
- pr("endif\n");
- pr("endif\n");
- pr("select 1\n");
- pr("skip\n");
- pr("enddo\n");
- pr("case ft='D'\n");
- pr("value=0\n");
- pr("sy=' '\n");
- pr("k1=ctod('00/00/00')\n");
- pr("do tyd with fname,value,k1,sy\n");
- pr("select 1\n");
- pr("go top\n");
- pr("do while .NOT. eof()\n");
- pr("if goon\n");
- pr("if &condition\n");
- for(kk=0;kk<j;kk++)
- {
- mybase=fbase;
- while(mybase->no!=(s[kk]-1))
- mybase=mybase->next;
- fprintf(fp,"sname='S'+'%s'\n",mybase->DB);
- pr("select 10\n");
- pr("use &sname exclusive\n");
- pr("go top\n");
- pr("locate for FIELD_NAME=fname\n");
- pr("if .NOT. eof()\n");
- fprintf(fp,"select %d\n",kk+1);
- pr("do case\n");
- pr("case sy='╠µ╗╗'\n");
- /***/ pr("do rlock24\n");
- pr("replace &fname with k1 \n");
- /****/ pr("unlock\n");
- pr("case sy='╝╙'\n");
- /****/ pr("do rlock24\n");
- pr("replace &fname with &fname+value \n");
- /***/ pr("unlock\n");
- pr("case sy='╝⌡'\n");
- /**/ pr("do rlock24\n");
- pr("replace &fname with &fname-value \n");
- /***/ pr("unlock\n");
- pr("endcase\n");
- pr("endif\n");
- }
- pr("endif\n");
- pr("endif\n");
- pr("select 1\n");
- pr("skip\n");
- pr("enddo\n");
- pr("case ft='N'\n");
- pr("expr=''\n");
- pr("value=0\n");
- fprintf(fp,"do %s with expr,value,fname\n",nname);
- pr("select 1\n");
- pr("go top\n");
- pr("do while .NOT. eof()\n");
- pr("if goon\n");
- pr("if &condition\n");
- for(kk=0;kk<j;kk++)
- {
- mybase=fbase;
- while(mybase->no!=(s[kk]-1))
- mybase=mybase->next;
- fprintf(fp,"sname='S'+'%s'\n",mybase->DB);
- pr("select 10\n");
- pr("use &sname exclusive\n");
- pr("go top\n");
- pr("locate for FIELD_NAME=fname\n");
- pr("if .NOT. eof()\n");
- fprintf(fp,"select %d\n",kk+1);
- pr("if len(expr)=0\n");
- /***/ pr("do rlock24\n");
- pr("replace &fname with value\n");
- /**/ pr("unlock\n");
- pr("else\n");
- /***/ pr("do rlock24\n");
- pr("replace &fname with &expr \n");
- /***/ pr("unlock\n");
- pr("endif\n");
- pr("endif\n");
- }
- pr("endif\n");
- pr("endif\n");
- pr("select 1\n");
- pr("skip\n");
- pr("enddo\n");
- pr("endcase\n");
- fclose(fp);
- }
-
-
-
-
- cr_sub71(dname,i)
- int i;
- char dname[30][20];
- {FILE *fp;
- int k,row,col;
- fp=fopen("pmod.prg","w");
- pr("set talk off\ndo while .t.\nset color to /w\nclear\nset color to w+/B\n");
- pr("@0,0 say '***│╔┼·╩²╛▌╨▐╕─***'\n");
- pr("@2,25 say '─·┐╔╢╘╧┬┴╨┐Γ╜°╨╨▓┘╫≈'\n");
- pr("@3,25 say '~~~~~~~~~~~~~~~~~~~~'\nset color to W/B\n");
- fprintf(fp,"set color to w+/n\n@6,15 clea to %d,65\n",6+i/2+i%2+1);
- fprintf(fp,"set color to w+/b\n@5,13 clea to %d,63\n",5+i/2+i%2+1);
- row=6;col=15;
- for(k=0;k<i;k++)
- { fprintf(fp,"@%d,%d say '%d. %s'\n",row,col,k+1,dname[k]);
- if(col==45) {col=15;row++;}
- else col+=30;
- }
- for(k=1;k<=6;k++)
- fprintf(fp,"select %d\nuse\n",k);
- pr("choice=space(2)\nset color to w+/b\n");
- pr("@22,10 say '╟δ╩Σ╚δ─·╡─╤í╘±,0▒φ╩╛═╦│÷ : ' get choice\n read\n");
- pr("set color to W+/N\n@22,0 clear\n");
- pr("if trim(choice)='0'\n");
- pr("return\nendif\n");
- pr("nn='psub'+trim(choice)+'.prg'\n");
- pr("if FILE(nn)\n");
- pr("do psub&choice\n");
- pr("endif\n");
- pr("enddo\n");
- fclose(fp);
- }
-
-
-
- /*---------------- This is a line editer -----------------------*/
- /* row,col posite the starting cursor */
- /* color denote the color of the */
- /* blackbord and the character */
- /* buff line-editer's interal denoting */
- /*--------------------------------------------------------------*/
- line_edit(int row, int col, int color, char *buff, int len)
- {
- int in_number=0, ins=0, i, j, flag=0 ;
- char *str ;
- union {
- int i;
- char ch[2];
- }key;
-
- len -= 2 ;
- color_puts(buff, color, row, col ) ;
- while(1)
- {
- cursor( row, col+in_number ) ;
- key.i = bioskey(0) ;
- switch(key.i)
- {
- case 15104: /* F1 */
- break ;
-
- case 19200: /* left arrow */
- if(in_number)
- in_number=confirm(buff,in_number-1);
- cursor( row, col+in_number ) ;
- break ;
-
- case 19712: /* right arrow */
- if( buff[in_number]=='\0' )
- buff[in_number]=' ' ;
- if((unsigned)buff[in_number]>128 && (unsigned)buff[in_number]>128)
- in_number+=2 ;
- else
- in_number++ ;
- if(in_number>len)
- in_number=0 ;
- break ;
-
- case 29440: /* Ctrl_left */
- in_number=confirm(buff,in_number-8) ;
- if( in_number <0 )
- in_number=0 ;
- break ;
-
- case 29696: /* ctrl_right */
- in_number = confirm(buff, in_number+8) ;
- if( in_number>(i=strlen(buff)))
- in_number = i ;
- break ;
-
- case 18176: /* Home */
- in_number=0 ;
- cursor( row, col ) ;
- break ;
-
- case 20224: /* End */
- in_number=strlen(buff) ;
- cursor( row, col+in_number ) ;
- break ;
-
- case 21248: /* Del */
- if( in_number==strlen(buff) )
- /* printf("\007");*/ ;
- else
- {
- if( (unsigned)buff[in_number]>128 && (unsigned)buff[in_number]>128 )
- {
- for( i=in_number+2,j=strlen(buff); i<=j; i++ )
- buff[i-2]=buff[i] ;
- color_puts( " ", color, row, col+j-2 ) ;
- }
- else
- {
- for( i=in_number+1,j=strlen(buff); i<=j; i++)
- buff[i-1] = buff[i] ;
- color_puts( " ", color, row, col+j-1 ) ;
- }
- str = &buff[in_number] ;
- color_puts(str, color, row, col+in_number) ;
- }
- break ;
-
- case 3592: /* Backspace */
- if(in_number)
- {
- if( (unsigned)buff[in_number-1]>128 && (unsigned)buff[in_number-2]>128 && in_number>1 )
- {
- for( i=in_number,j=strlen(buff); i<=j; i++)
- buff[i-2] = buff[i] ;
- in_number-=2 ;
- color_puts( " ", color, row, col+j-2 ) ;
- }
- else
- {
- for( i=in_number,j=strlen(buff); i<=j; i++)
- buff[i-1] = buff[i] ;
- in_number-- ;
- color_puts( " ", color, row, col+j-1 ) ;
- }
- str = &buff[in_number] ;
- color_puts( str, color, row, col+in_number ) ;
- }
- else
- /* printf("\007"); */ ;
- break ;
-
- case 20992: /* Ins */
- ins=(ins?0:1) ;
- break ;
-
- case 7181: /* Enter */
- for( i=strlen(buff)-1; buff[i]==' '&&i>=0; i--);
- buff[i+1]='\0' ;
- return ;
-
- default:
- if( ins )
- {
-
- if( strlen(buff)>=len || key.ch[0]==0)
- /* printf("\007") ; */;
- else
- {
- for( i=strlen(buff); i>in_number; i--)
- buff[i] = buff[i-1] ;
- buff[in_number] = key.ch[0] ;
- if( (unsigned)key.ch[0]>128 )
- if( flag==0 ) /* the forehalf of chinese */
- {
- flag++ ;
- in_number++ ;
- }
- else
- {
- flag-- ;
- str = &buff[in_number-1] ;
- color_puts( str, color, row, col-1+in_number++ ) ;
- }
- else
- {
- str = &buff[in_number] ;
- color_puts( str, color,row, col+in_number++ ) ;
- }
- }
- }
- else
- {
- if( in_number>=len || key.ch[0]==0 )
- /* printf("\007") ; */;
- else
- {
- if(buff[in_number]=='\0') buff[in_number+1]='\0' ;
- buff[in_number] = key.ch[0] ;
- str = &buff[in_number] ;
- color_puts( str, color, row, col+in_number++ ) ;
- }
- }
-
- }
- }
- }
-
-
- /*----- if the charater is chinese , and then the cursor must be in the first position----*/
- confirm(char *s, int col)
- {
- int i ;
- if( (unsigned)s[col]<128)
- return(col) ;
- for(i=col; (unsigned)s[i]>128&&i>0; i--) ;
- if((col-i)%2!=0)
- return(col) ;
- else
- return(col-1) ;
- }
-
-
- readchar()
- {
- union REGS regs;
- int t,m;
- regs.x.ax=0;
- int86(0x16,®s,®s);
- t=regs.x.ax & 0x00ff;
- m=(regs.x.ax-t)/256;
- if (t!=0) return(t);
- return(m+200);
- }