home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <string.h>
- #include <dos.h>
- #define COUNT 40
- #define pr(x) fprintf(lp,x)
- struct DBF { struct DB { char field[11]; /* ╫╓╢╬├√ */
- char type; /* ╫╓╢╬└α╨═ */
- int len; /* ╫╓╢╬│ñ╢╚ */
- int dec; /* ╨í╩²╬╗ */
- } db[COUNT];
- struct DBF *last;
- struct DBF *next;
- int ctc; /* ╡▒╟░┐Γ╨┼╧ó┐Θ─┌╩╡╝╩┐Γ╡─╕÷╩² */
- } *wd,*rd,*newd;
- struct BASE { struct BS { char mean[31]; /* ┐Γ║¼╥σ├√ */
- char name[9]; /* ┐Γ╬─╝■├√ */
- struct DBF *dbs; /* ╓╕╧≥┐Γ╜ß╣╣┐Θ═╖╡╪╓╖ */
- } base[10];
- struct BASE *last;
- struct BASE *next;
- int ctc; /* ╡▒╟░┐Γ╜ß╣╣┐Θ─┌╩╡╝╩┐Γ╫╓╢╬╡─╕÷╩² */
- } *wb,*rb,*newb;
- int repeat,MAR[6][128];
- char *explain,PATH[30];
- struct BS ldb[6]; /* ╝╟┬╝ 1--6 ╕÷▓Θ╤»┐Γ╡─╙╨╣╪╨┼╧ó */
- int linkflag;
- char link[5][31],path[30],*sele,*mj;/*5.8*/
- int no,cod=0;/*5.15*/
- int m12;/*in_c retrun to scr*/
- FILE *mid;
- /**/
- int duoflag=0;
- int ss0[10];
- int n1=0;
-
- /*-------------------------------------------*/
- /* ╔· │╔ ╧╡ ═│ ╓≈ ┐╪ │╠ ╨≥ */
- /*-------------------------------------------*/
- main(argc,argv)
- int argc;
- char *argv[];
- { char s[7][20],lm[7][20];
- int ACT[7],i,j,n,m,r=0,aa,dbctc;/*5.8*/
- char OK,name[9];
- FILE *lp,*fp,*code;
- /**/int ii;
- if (strcmp(argv[2],"wy")!=0) return(0);
- getbase(argv[1]);
- strcpy(PATH,argv[1]);
- for(m=0;m<=6;m++)
- strcpy(lm[m],"\0");
- strcpy(s[0],"╦≈╥²┐∞╦┘▓Θ╤»");
- strcpy(s[1],"╞Ñ┼Σ─ú║²▓Θ╤»");
- strcpy(s[2],"╫Θ║╧╣╠╢¿╠⌡╝■▓Θ╤»");
- strcpy(s[3],"╫Θ║╧╚╬╥Γ╠⌡╝■▓Θ╤»");
- strcpy(s[4],"╚╬╥Γ╫╓╢╬▓Θ╤»");
- strcpy(s[5],"╚╬╥Γ╠⌡╝■▓Θ╤»");
- strcpy(s[6],"╕╜╝╙─ú┐Θ");
- for (i=0;i<6;i++) ACT[i]=0;
-
- /**/for (ii=0; ii<10; ii++)
- ss0[ii]=0;
- m=0;
- if ((fp=fopen("looki.prg","r"))!=NULL){strcpy(lm[m],s[0]);ACT[m]=1;m++;fclose(fp);}
- if ((fp=fopen("lookp.prg","r"))!=NULL){strcpy(lm[m],s[1]);ACT[m]=2;m++;fclose(fp);}
- if ((fp=fopen("lookf.prg","r"))!=NULL){strcpy(lm[m],s[2]);ACT[m]=3;m++;fclose(fp);}
- if ((fp=fopen("lookm.prg","r"))!=NULL){strcpy(lm[m],s[3]);ACT[m]=4;m++;fclose(fp);}
- if ((fp=fopen("lookj.prg","r"))!=NULL){strcpy(lm[m],s[4]);ACT[m]=5;m++;fclose(fp);}
- if ((fp=fopen("lkr.prg","r"))!=NULL){strcpy(lm[m],s[5]);ACT[m]=6;m++;fclose(fp);}
- /* if(m!=0)m--;*/
- i=0;
- do
- {
- /**/cls(1,1,25,80,48|33);
- cls(5,20,16,63,0|1);
- cls(4,19,15,61,0|30);
- frame(3,18,15,60,0|30);
- prt(0,0,0|30,"*** ▓Θ╤»─ú┐Θ╔·│╔ ***");
- prt(4,24,0|30,"***** ▓Θ╤»─ú┐Θ╣ª─▄▓╦╡Ñ *****");
- prt(6,27,0|30,"1 -- ╦≈╥²┐∞╦┘▓Θ╤»");
- prt(7,27,0|30,"2 -- ╞Ñ┼Σ─ú║²▓Θ╤»");
- prt(8,27,0|30,"3 -- ╫Θ║╧╣╠╢¿╠⌡╝■▓Θ╤»");
- prt(9,27,0|30,"4 -- ╫Θ║╧╚╬╥Γ╠⌡╝■▓Θ╤»");
- prt(10,27,0|30,"5 -- ╚╬╥Γ╫╓╢╬▓Θ╤»");
- prt(11,27,0|30,"6 -- ╚╬╥Γ╠⌡╝■▓Θ╤»");
- prt(12,27,0|30,"7 -- ╕╜╝╙─ú┐Θ");
- for (n=0;n<7;n++)
- for (OK=0;OK<7;OK++)
- if (ACT[OK]==n+1) { prt(6+n,25,0|30,"*"); }
- prt(20,18,48|33,"─·╡─╧╡═│╓╨╨Φ╥¬──╓╓▓Θ╤»╣ª─▄? ╟δ╤í╘± : ");
- if ((n=getn(0,7,20,55))!=0)
- { j=0;
- cursor(n+5,25);
- putchar('*');
- prt(23,25,48|33,"╚╖╚╧╖±(Y/N)? ");
- while (((OK=getchar())!='N')&&(OK!='Y')&&(OK!='y')&&(OK!='n'));
- prt(23,37,48|33," ");
- if (OK!='Y'&&OK!='y')
- {if(i>0){ACT[i+m]=0;}
- continue; }
- else{
- do{if(ACT[j]==n)j=i+m+2;
- j++;} while (j<=i+m);
- if(j==i+m+1)
- {ACT[i+m]=n;
- strcpy(lm[i+m],s[n-1]);
- i++;
- }
- }
- switch (n)
- { case 1 : r=exist(s[0],"looki.prg");
- if(r==2) {index(0);}
- else{if(r==3)break; else index(1);}
- break;
- case 2 : r=exist(s[1],"lookp.prg");
- if(r==2){match(0);}
- else {if(r==3)break; else match(1);}
- break;
- case 3 : r=exist(s[2],"lookf.prg");
- if(r==2){fix(0);}
- else {if(r==3)break;else fix(1);}
- break;
- case 4 : r=exist(s[3],"lookm.prg");
- if(r==2){mix(0);}
- else {if(r==3)break; else mix(1);}
- break;
- case 5 : system("copy c:\\cdbag4\\lookj.prg *.* > oztom");
- system("copy c:\\cdbag4\\dbmenu.prg *.* > oztom");
- system("copy c:\\cdbag4\\choice.prg *.* > oztom");
- break;
- case 6 : lp=fopen("lkr.prg","w");
- fprintf(lp,"PROC LOOKR\nDO WHILE .T.\nRUN FIX %s\nCLEAR\nDO LR\nCLEAR\n",PATH);
- pr("CON=' '\n@10,20 SAY '╩╟╖±╗╣╥¬╜°╨╨╞Σ╦ⁿ╠⌡╝■╡─▓Θ╤»?(Y/N): ' GET CON PICT '!'\n");
- pr("READ\nIF CON<>'Y'\nEXIT\nENDIF\nENDDO\nRETURN\n");
- fclose(lp);
- system("copy lkr.prg+c:\\cdbag4\\pro.prg lkr.prg > oztom");
- system("copy \\cdbag4\\fix.exe *.* > oztom");
- system("copy \\cdbag4\\cre_df.prg *.* > oztom");
- break;
- case 7 : system("c:\\cdbag4\\caxunf 2 wy");
- /* cursor(15,10);
- color_puts("╟δ╩Σ╚δ╕╜╝╙─ú┐Θ╡─┬╖╛╢├√ : ",11);
- color_puts(" ",14|16);
- cursor(15,35);
- scanf("%s",path);
- cursor(17,10);
- color_puts("╟δ╩Σ╚δ╕╜╝╙─ú┐Θ╡─╓┤╨╨╬─╝■├√ : ",11);
- color_puts(" ",14|16);
- cursor(17,39);
- scanf("%s",name);*/
- break;
- }
- for (dbctc=0;ldb[dbctc].dbs!=NULL;dbctc++) free(ldb[dbctc].dbs);
- OK='N';
- continue;
- }
- cls(1,1,25,80,0|30);
- prt(15,20,0|30,"─·╢╘╟░├µ╔·│╔╡─▓Θ╤»─ú┐Θ┬·╥Γ┬≡ (Y/N) ?");
- OK=readchar(); printf("%c",OK); /*scanf("%c",&OK);*/
- if (OK!='Y'&&OK!='y') { for (n=m+1;n<6;n++) ACT[n]=0; i=0; }
- } while (OK!='Y'&&OK!='y');
- system("copy \\cdbag4\\ldb.dbf *.* > oztom");
- system("copy \\cdbag4\\lb.dbf *.* > oztom");
- system("copy \\cdbag4\\lop.dbf *.* > oztom");
- system("copy \\cdbag4\\p?tlook.prg *.* > oztom");
- system("copy \\cdbag4\\pprint.prg *.* > oztom");
- system("copy \\cdbag4\\win.dbf *.* > oztom");
- system("copy \\cdbag4\\ag.prg *.* > oztom");
- lp=fopen("look.prg","w");
- pr("PUBL FMTPRG\nPUBL GS\n"); /*add 5.16*/
- pr("PUBL DF1,DF2,DF3,DF4,DF5,DF6,DF7,DF8,DF9,DF10,DF11,DF12,DF13,DF14\n");
- pr("PUBL DF15,DF16,DF17,DF18,DF19,DF20,DF21,DF22,DF23,DF24,DF25,DF26,DF27,DF28\n");
- pr("PUBL DF29,DF30,DF31,DF32,DF33,DF34,DF35,DF36,DF37,DF38,DF39,DF40,DF41,DF42\n");
- pr("PUBL DF43,DF44,DF45,DF46,DF47,DF48,DF49,DF50,DF51,DF52,DF53,DF54,DF55,DF56\n");
- pr("PUBL DF57,DF58,DF59,DF60,DF61,DF62,DF63,DF64,DF65,DF66,DF67,DF68,DF69,DF70\n");
- pr("PUBL DF71,DF72,DF73,DF74,DF75,DF76,DF77,DF78,DF79,DF80,DF81,DF82,DF83,DF84\n");
- pr("PUBL DF85,DF86,DF87,DF88,DF89,DF90,DF91,DF92,DF93,DF94,DF95,DF96,DF97,DF98,DF99\n");
- pr("PUBL DF100,DF101,DF102,DF103,DF104,DF105,DF106,DF107,DF108,DF109,DF110,DF111,DF112,DF113,DF114\n");
- pr("PUBL DF115,DF116,DF117,DF118,DF119,DF120,DF121,DF122,DF123,DF124,DF125,DF126,DF127,DF128\n");
- pr("PUBL FD\nset talk off\nset safety off\nset exact on\nset scor off\nset excl off\n");
- /**/ pr("set procedu to proced\non error do again\n");
-
- if ((code=fopen("code.dbf","r"))!=NULL)
- pr("sele 8\nuse code inde codeinde\n");
- fclose(code);
- pr("do while .T.\n clear\n");
- pr("set color to w+/w\n");
- pr("clear\n");
- pr("set color to w+/n\n");
- pr("@11,12 clear to 21,72\n");
- pr("set color to w+/b\n");
- pr("@10,10 clear to 20,70\n");
- pr("set color to w+/b\n");
- pr("@6,18 say ' *** ▓Θ╤»─ú┐Θ╣ª─▄▓╦╡Ñ *** '\n");
- pr("set color to w+/b\n");
- m=i+m;
- for(n=0;n<m;n++)
- { fprintf(lp,"@%d,18 say ' %d. %s '\n",n+11,n+1,lm[n]); /*8 TO 11*/
- }
- fprintf(lp,"PATH='%s'\nhh=' '\nPATH=SUBSTR(PATH,1,LEN(PATH)-1)\n",argv[1]);
- fprintf(lp,"set color to w/b\ndo while at(hh,'01234567')=0\n");/*R/GR+*/
- pr("set color to w+/b\n");
- fprintf(lp,"@23,10 say '─·╥¬╜°╨╨║╬╓╓▓Θ╤»? ╟δ╤í╘± 1 -- %d (╩Σ 0 ╖╡╗╪) : ' get hh\n",m);/*i to m*/
- pr("read\nenddo\nset color to W/N\nif hh='0'\nreturn\nendif\n");
- pr("do case\n");
- for (n=0;n<m;n++)
- switch (ACT[n])
- { case 1 : fprintf(lp," case hh='%d'\nFMTPRG='indscr'\ndo looki\n",n+1);
- break; /*indscr*/
- case 2 : fprintf(lp," case hh='%d'\n*set proc to lkp\nFMTPRG='matscr'\ndo lookp\n*close proc\n",n+1);
- break; /*matscr*/
- case 3 : fprintf(lp," case hh='%d'\n*set proc to lkf\nFMTPRG='fixscr'\ndo lookf\n*close proc\n",n+1);
- break; /*fixscr*/
- case 4 : fprintf(lp," case hh='%d'\n*set proc to lkm\nFMTPRG='mixscr'\ndo lookm\n*close proc\n",n+1);
- break; /*mixscr*/
- case 5 : fprintf(lp," case hh='%d'\ndo lookj\n",n+1);
- break;
- case 6 : fprintf(lp," case hh='%d'\nFMTPRG='RFYSCR'\nset proc to lkr\ndo lookr\nclose proc\n",n+1);
- break;
- case 7 : fprintf(lp," case hh='%d'\ndo caxunf\n",n+1);
- break;
- }
- pr("endcase\n");
- pr("enddo\nsele 8\nuse\nset exact off\nreturn\n");
- fclose(lp);
- system("cls");
- cursor(8,15);
- printf("*** ▓Θ ╤» ─ú ┐Θ ╔· │╔ ═Ω ▒╧ ***");
- dela();
- }
-
- in_c(i)
- int *i;
- { int n=0;
- cls(23,1,24,80,48|33);
- if (ldb[1].dbs!=NULL)
- { prt(22,10,48|33,"╟δ╤í╘±╠⌡╝■╫╓╢╬ (íⁿ/í²: ╤í┐Γ, PgUp/PgDn: ╖¡╞┴): ");
- }
- else
- { prt(22,20,48|33,"╟δ╤í╘±╠⌡╝■╫╓╢╬(PgUp/PgDn: ╖¡╞┴): ");
- }
- while (n==0)
- { if (ldb[1].dbs!=NULL)
- { while ((n=get(22,57))!=0)
- { if (n=='u'||n=='d')
- { if (n=='u'&&*i>0) { (*i)--; rd=ldb[*i].dbs; wd=ldb[*i].dbs; }
- else if (*i<5&&ldb[*i+1].dbs!=NULL) { (*i)++; rd=ldb[*i].dbs; wd=ldb[*i].dbs; }
- m12=judge(0);
- }
- else if (n=='U'||n=='D')
- { m12=judge(n);
- continue;
- }
- else break;
- }
- }
- else
- { n=get(22,53);
- if (n=='U'||n=='D')
- { m12=judge(n);
- n=0;
- continue;
- }
- if (n=='u'||n=='d') { n=0; continue; }
- }
- if (n==0) error();
- }
- if (n%COUNT==0) return(COUNT);
- else return(n%COUNT);
- }
-
-
- /*-------------------------------------------------*/
- /* ╦≈ ╥² ┐∞ ╦┘ ▓Θ ╤» ─ú ┐Θ ╔· │╔ */
- /*-------------------------------------------------*/
- index(h)
- int h;
- { int m,n,i,j,k,l,/*no,*/rep=1,c,r,wh;
- char tj[9],*s,*sl,st[7],str[20],name[31],ph[30];
- FILE *fq,*fp,*dp,*lp,*sp;
- system("cls");
- cursor(8,20);
- color_puts("*** ╧┬ ├µ ╔· │╔ ╦≈ ╥² ┐∞ ▓Θ ***",10);
- cursor(12,10);
- color_puts(" ╬¬╩╣▓Θ╤»╖╜▒π╤╕╦┘, ╟δ╢╘╕≈┐Γ╛¡│ú▓Θ╤»╡─╫╓╢╬╜¿┴ó╦≈╥². \n\
- \n─·╝╚┐╔╥╘╜°╨╨╡Ñ╫╓╢╬╦≈╥², ╙╓┐╔╥╘╜°╨╨╢α╫╓╢╬╦≈╥².",10);
- cursor(16,12);
- color_puts("╫ó╥Γ: ╢╘╢α╫╓╢╬╦≈╥²╩▒, ╫ε╢α╓╗─▄╜¿┴óú╢╕÷╫╓╢╬╡─╦≈╥².",10);
- go_on();
- explain=(char *)malloc(21*sizeof(char));
- strcpy(explain,"*** ╦≈╥²┐∞╦┘▓Θ╤» ***\0");
- no=0;
- strcpy(ph,PATH);
- strcat(ph,"NDX.TXT");
- if(h==1)
- {strcpy(tj,"li");add(h,tj);
- lp=fopen("looki.prg","w");sp=fopen(ph,"w");fclose(sp);
- dp=fopen("liop.txt","w");
- fp=fopen("li.txt","w");if(fopen("indscr1.prg","r")!=NULL)system("del indscr*.*");
- }
- else
- if(h==0)
- {dp=fopen("liop.txt","a");
- fp=fopen("li.txt","a");
- system("copy looki.prg mid.prg > oztom");
- mj=(char *)malloc(80*sizeof(char));
- mid=fopen("mid.prg","r");
- lp=fopen("looki.prg","w");
- fgets(mj,30,mid);
- while (strncmp("sele 10",mj,7)!=0)
- {fputs(mj,lp);
- fgets(mj,30,mid);
- }
- system("del mid.prg > oztom");
- strcpy(tj,"li");
- no=add(h,tj);
- }
- while (rep)
- { repeat=1;
- c=getroad(no);
- if (c==0)
- { rep=0;
- continue;
- }
- n1++;
- if (repeat==0) continue;
- if (c>1) deflink(name);
- else
- {
- prt(22,15,48|33,"╟δ╢¿╥σ┴¼╜╙┐Γ╡─╩╢▒≡├√(╫ε╢α30╕÷╫╓╖√): ");
- scanf("%30s",name);
- /* strcpy(name,ldb[0].mean);*/
- wd=ldb[0].dbs; rd=ldb[0].dbs;
- }
- sp=fopen(ph,"a");
- cls(1,1,25,80,48|33);
- judge(0);
- m=0;
- prt(16,20,48|33,"╧┬ ├µ ╢¿ ╥σ ╦≈ ╥² ╫╓ ╢╬");
- prt(18,10,48|33," ─·╝╚┐╔╥╘╢╘╡Ñ╫╓╢╬╦≈╥², ╙╓┐╔╥╘╜°╨╨╢α╫╓╢╬╦≈╥²,");
- prt(19,10,48|33,"╡½╢α╫╓╢╬╦≈╥²╩▒, ╫╓╢╬╩²╫ε╢α╬¬ 6 ╕÷.");
- prt(21,20,48|33,"╟δ╧╚╤í╘±╡Ñ╦≈╥²╫╓╢╬(0 ╜ß╩°╤í╘±): ");
- while ((n=get(21,52))!=0)
- { if (n=='U'||n=='D')
- { judge(n);
- continue;
- }
- mark(n,"*");
- if (n%COUNT==0) n=COUNT-1;
- else n=n%COUNT-1;
- fprintf(lp,"inf%d%d='%s'\n",no+1,m+1,wd->db[n].field);
- fprintf(lp,"ty%d%d='%c'\n",no+1,m+1,wd->db[n].type);
- fprintf(lp,"len%d%d=%d\n",no+1,m+1,wd->db[n].len);
- fprintf(dp,"#%s#,#%c#\n",wd->db[n].field,wd->db[n].type);
- fprintf(sp,"#%s#,#%s#,##,0,0\n",ldb[0].name,wd->db[n].field);
- m++;
- }
- do {cls(1,1,25,80,48|33);
- wd=rd;
- judge(0);
- prt(18,15,48|33,"╩╟╖±╗╣╜°╨╨╢α╫╓╢╬╦≈╥²(Y/N)? ");
- while (((c=getchar())!='N')&&(c!='Y')&&(c!='y')&&(c!='n'));
- if (c=='y'||c=='Y')
- { prt(18,15,48|33," ");
- k=0;
- c=0;
- l=0;
- prt(20,20,48|33,"╟δ╤í╘±: ");
- fprintf(lp,"inf%d%d='",no+1,m+1);
- fprintf(sp,"#%s#,#",ldb[0].name);
- s=(char *)malloc(70*sizeof(char));
- sl=(char *)malloc(100*sizeof(char));
- strcpy(s,"");
- strcpy(sl,"");
- while ((n=get(20,28))!=0)
- { if (n=='U'||n=='D')
- { judge(n);
- continue;
- }
- if (n%COUNT==0) i=COUNT-1;
- else i=n%COUNT-1;
- if (c) { fprintf(lp,"+"); fprintf(sp,"+");
- strcat(s,"+"); strcat(sl,"+"); strcat(st,"+");
- }
- c=1;
- if (wd->db[i].type=='N')
- { fprintf(lp,"STR(%s,%d)",wd->db[i].field,wd->db[i].len);
- fprintf(sp,"STR(%s,%d)",wd->db[i].field,wd->db[i].len);
- }
- if (wd->db[i].type=='D')
- { fprintf(lp,"DTOC(%s)",wd->db[i].field);
- fprintf(sp,"DTOC(%s)",wd->db[i].field);
- }
- if (wd->db[i].type=='C')
- { fprintf(lp,"%s",wd->db[i].field); k=1;
- fprintf(sp,"%s",wd->db[i].field);
- }
- if (wd->db[n].type=='L'||wd->db[n].type=='M') { error(); continue; }
- mark(n,"*");
- strcat(s,wd->db[i].field);
- itoa(wd->db[i].len,str,10);
- strcat(sl,str);
- st[l++]=wd->db[i].type;
- }
- st[l]='\0';
- fprintf(lp,"'\nminf%d%d='%s'\nlen%d%d='%s'\nty%d%d='%s'\n",no+1,m+1,s,no+1,m+1,sl,no+1,m+1,st);
- fprintf(sp,"#,##,0,0\n");
- cursor(20,15);
- prt(20,15,48|33,"╟δ╢¿╥σ╢α╫╓╢╬╦≈╥²╡─╩╢▒≡├√: ");
- scanf("%30s",s);
- if (k==1) fprintf(dp,"#%s#,#C#\n",s);
- else fprintf(dp,"#%s#,##\n",s);
- free(s);
- m++;
- }
- else break;
- } while (c=='Y'||c=='y');
- strcpy(sele,"ind");
- r=sele_disp(name);/*r=1 sys;=2 use*//* ()*/
- /* fprintf(lp,"gs%d=%d\n",no+1,r);*/
- cre(no,"li");
- cre1(no,lp);
- cre2(name,m,fp,duoflag);
- no++;
- fclose(sp);
- for (wh=0;wh<6 && ldb[wh].dbs!=NULL;wh++) free(ldb[wh].dbs);
- }
- fclose(dp);
- fclose(fp);
- /** pr("road=path\nsele 10\nuse LDB excl\nzap\nappe from li.txt deli with #\n");**/
- /**/ pr("dd=' '\n");
- pr("road=path\nsele 10\nuse LB excl\nzap\nappe from li.txt deli with #\n");
- pr("use lop excl\nzap\nappe from liop.txt deli with #\nuse\n");
- pr("link=space(10)\ncty=' '\ndo while .T.\nh=' '\nhh=' '\nno=0\nct=0\ndo &path\\lmenu with 'li'\n");
- pr("if h='0'\nreturn\nendif\ndf=f&h\n");
- pr("set proc to &path\\pro\ndo while .T.\n*SET PROC TO &PATH\\PRO\ndo lop\n");
- pr("if hh='0'\nCLOSE PROC\nexit\nendif\nSELE A\nUSE &PATH\\DB\nLOCA FOR NAME=B1\nIF SHAREFLAG='Y' .OR. SHAREFLAG='y'\nROAD=TRIM(SHAREPATH)\nUSE\n");
- pr("endif\ndo relation with num\nSELE 10\nUSE &ROAD\\NDX\n");
- pr("s='inf'+h+hh\ns=&s\nty='ty'+h+hh\nty=&ty\nclear\nlen='len'+h+hh\nsele 10\n");
- pr("loca for TRIM(╦≈╥²╫╓╢╬)=s.AND.TRIM(┐Γ├√)=B1\nfname=TRIM(╦≈╥²╬─╝■)\nuse\nsele 1\nset index to &ROAD\\&fname\n");
- pr("if at('+',s)=0\ncontent=space(&len)\n@9,15 say '╟δ╩Σ╚δ '+ s +' ╡─╛▀╠σ╓╡: ' get content\nread\n");
- pr("do case\ncase ty='N'\ncon=val(content)\ncontent=s+'='+trim(content)\n");
- pr("case ty='D'\ncon='CTOD(\"'+content+'\")'\ncontent=s+'='+con\ncon=&con\n");
- pr("case ty='C'\nmcon='AT(\"'+TRIM(content)+'\",'+s+')>0'\ncon=content\ncontent=s+'=\"'+content+'\"'\nendcase\n");
- pr("else\n@5,10 say '╟δ╩Σ╚δ▓Θ╒╥╡─╛▀╠σ─┌╚▌:'\ni=1\ncontent=' '\ncon=' '\nmcon=' '\n");
- pr("s='minf'+h+hh\ns=&s\nlen=&len\ndo while .T.\nl=at('+',len)\nif l>0\nn=substr(len,1,l-1)\n");
- pr("len=substr(len,l+1,len(s))\nconp=space(val(n))\nelse\nconp=space(val(len))\nn=len\nendif\n");
- pr("l=at('+',s)\nt=substr(ty,i,1)\nif l<>0\nss=substr(s,1,l-1)\n@i+6,12 say ss get conp\nread\n");
- pr("s=substr(s,l+1,len(s))\ndo case\ncase t='D'\nmcon=mcon+ss+'=CTOD(\"'+conp+'\").AND.'\n");
- pr("con=con+'CTOD(\"'+conp+'\")+'\ncontent=content+ss+'=CTOD(\"'+conp+'\").AND.'\n");
- pr("case t='C'\nmcon=mcon+'AT(\"'+TRIM(conp)+'\",'+ss+')>0.AND.'\ncontent=content+ss+'=\"'+conp+'\".AND.'\n");
- pr("con=con+'\"'+conp+'\"+'\ncase t='N'\nmcon=mcon+ss+'='+TRIM(conp)+'.AND.'\n");
- pr("con=con+'STR('+TRIM(conp)+',&n)+'\ncontent=content+ss+'='+TRIM(conp)+'.AND.'\nendcase\n");
- pr("else\n@i+6,12 say s get conp\nread\ndo case\ncase t='D'\nmcon=mcon+s+'=CTOD(\"'+conp+'\")'\n");
- pr("con=con+'CTOD(\"'+conp+'\"'\ncontent=content+s+'=CTOD(\"'+conp+'\"'\n");
- pr("case t='C'\nmcon=mcon+'AT(\"'+TRIM(conp)+'\",'+s+')>0'\ncontent=content+s+'=\"'+conp+'\"'\n");
- pr("con=con+'\"'+conp+'\"'\ncase t='N'\nmcon=mcon+s+'='+TRIM(conp)\n");
- pr("con=con+'STR('+conp+',&n)'\ncontent=content+s+'='+TRIM(conp)\nendcase\ncon=&con\nexit\nendif\n");
- pr("i=i+1\nenddo\nendif\nseek con\nw=.t.\nset color to w+/b\nclear\n@10,10 say '╒²╘┌▓Θ╤»,╟δ╔╘║≥...'\n");
- pr("if .NOT.EOF()\nif w\ndo &ftprg\nDO REP\nendif\nskip\ndo while .NOT.EOF()\n");/*do form*/
- /** pr("if &content\nif w\n*if gs=1\n*do form\n*else\ndo &ftprg\n*endif\ndo rep\nelse exit\nendif\nendif\nskip\nenddo\nendif\nDO D_P\nDO SHUT\nendif\nenddo\nenddo\n");**/
- pr("if &content\nif w\n");
- /** if (!duoflag)
- pr("*if gs=1\n*do form\n*else\ndo &ftprg\n*endif\n");**/
- pr("if dd=\"0\"\ndo &ftprg\nendif\n");
- pr("do rep\nelse exit\nendif\nendif\nskip\nenddo\nendif\nDO D_P with dd\nDO SHUT\nendif\nenddo\nenddo\n");
- fclose(lp);
- system("cls");
- cursor(8,18);
- color_puts("*** ╦≈ ╥² ▓Θ ╤» ╔· │╔ ═Ω ▒╧ ***",10);
- dela();
- }
- /*-------------------------------------------*/
- /* ╢¿ ╥σ ╫Θ ║╧ ╚╬ ╥Γ ╠⌡ ╝■ */
- /*-------------------------------------------*/
- get_mc()
- { int i,n=0,c;
- int row,col,cl,m,con=1,j,k;
- char str[31];
- FILE *fp,*dp;
- system("cls");
- fp=fopen("meno.txt","a");
- dp=fopen("lmop.txt","a");
- i=0;
- wd=ldb[0].dbs;
- rd=ldb[0].dbs;
- judge(0);
- cls(16,1,22,80,48|33);
- n=in_c(&i);
- /*cursor(14,0);
- for (m=1;m<80;m++) putchar('-');*/
- cls(16,1,25,80,48|33);
- prt(15,10,48|33,"╫Θ║╧╠⌡╝■╚τ╧┬ ");
- /* print1(48|33," ");*/
- row=17;
- col=2;
- m=1;
- prt(row,col,0|30,"%d. %s ",m,wd->db[n-1].field);
- fprintf(fp,"#%s#%s#%c#%d",wd->db[n-1].field,ldb[i].name,wd->db[n-1].type,wd->db[n-1].len);
- /*print1(0|30,"#%s#%s#%c#%d",wd->db[n-1].field,ldb[i].name,wd->db[n-1].type,wd->db[n-1].len);*/
- if (wd->db[n-1].type=='C') k=1;
- while (con!=0)
- { prt(22,0,48|33,"╠⌡╝■╣╪╧╡░ⁿ└¿: 1_.AND. 2_.OR. 3_.NOT. 4_.AND..NOT. 5_.OR..NOT. ╟δ╤í╘±(0╜ß╩°):");
- while ((con=getn(0,5,22,77))=='u'||con=='U'||con=='d'||con=='D') ;
- /*color_puts(" ",10);*/
- col+=10;
- cursor(row,col);
- switch (con)
- { case 1 : print1(0|30,".AND.");
- col+=5;
- fprintf(fp,"#.AND.");
- break;
- case 2 : print1(0|30,".OR.");
- col+=4;
- fprintf(fp,"#.OR.");
- break;
- case 3 : print1(0|30,".NOT.");
- col+=5;
- fprintf(fp,"#.NOT.");
- break;
- case 4 : print1(0|30,".AND..NOT.");
- col+=10;
- fprintf(fp,"#.AND..NOT.");
- break;
- case 5 : print1(0|30,".OR..NOT.");
- col+=9;
- fprintf(fp,"#.OR..NOT.");
- break;
- case 0 : cls(23,1,24,80,48|33);
- if (col>15)
- { prt(22,10,48|33,"╟δ╢¿╥σ▓Θ╤»╠⌡╝■╡─╩╢▒≡├√: ");
- scanf("%s",str);
- cls(16,1,24,80,48|33);
- }
- else strcpy(str,wd->db[n-1].field);
- if (k==1) fprintf(dp,"#%s#,#C#\n",str);
- else fprintf(dp,"#%s#,##\n",str);
- prt(22,10,48|33,"╩╟╖±╗╣╙╨╞Σ╦ⁿ╫Θ║╧╠⌡╝■(Y/N)? ");
- if ((c=bioskey(0)%256)!='Y'&&c!='y') { fprintf(fp,"#\n#####\n"); continue; }
- else
- { m++;
- row=17;
- con=1;
- col=2;
- k=0;
- cls(18,1,24,80,0|30);
- color_puts(" ",10);
- prt(row,col,0|30,"%d.",m);
- fprintf(fp,"#\n");
- }
- break;
- }
- n=in_c(&i);
- if (col>68) { row++; col=2; }
- if (col<10) cursor(row,col+2);
- else cursor(row,col);
- print1(0|30," %s ",wd->db[n-1].field);
- fprintf(fp,"#%s#%s#%c#%d",wd->db[n-1].field,ldb[i].name,wd->db[n-1].type,wd->db[n-1].len);
- if (wd->db[n-1].type=='C') k=1;
- }
- fclose(fp);
- fclose(dp);
- return(m);
- }
- /*-------------------------------------------------*/
- /* ╫Θ ║╧ ╚╬ ╥Γ ╠⌡ ╝■ ▓Θ ╤» ╔· │╔ */
- /*-------------------------------------------------*/
- mix(h)
- int h;
- { int n,/*no,*/rep,c,i,j,m,len,row,r,wh;
- char tj[9],name[31],*s,fh[11],dbf[9],con[11],ty;
- FILE *fq,*fp,*dp,*lp;
- rep=1;
- system("cls");cursor(8,15);color_puts("*** ╧┬ ├µ ╔· │╔ ╫Θ ║╧ ╚╬ ╥Γ ╠⌡ ╝■ ▓Θ ╤» ***",10);
- cursor(13,8);color_puts(" ╫Θ║╧╚╬╥Γ╠⌡╝■╩╟═¿╣²┬▀╝⌐╣╪╧╡╖√╜½╥╗╕÷╗≥╥╗╕÷╥╘╔╧╡─╫╓╢╬╫Θ\
- \n║╧╞≡└┤, ╩╡╝╩▓Θ╤»╩▒, ╘┘╕°│÷╫╓╢╬╡─╛▀╠σ╓╡. ╒δ╢╘▓╗═¼╟Θ┐÷, ▓Θ\n╤»╠⌡╝■╡─╛▀╠σ╓╡╗ß╙╨╦∙▓╗═¼.\n\
- \n ─·╝╚┐╔╥╘┤╙╥╗╕÷┐Γ╓╨╤í╫╓╢╬╠ß╠⌡╝■, ╥▓┐╔╥╘╘┌╢¿╥σ┴╦┴¼\n╜╙┐Γ║≤, ┤╙╢α╕÷┐Γ╓╨╤í╫╓╢╬╠ß╠⌡╝■.",10);
- go_on();explain=(char *)malloc(25*sizeof(char));
- strcpy(explain,"*** ╫Θ║╧╚╬╥Γ╠⌡╝■▓Θ╤» ***");no=0;
- if(h==1)
- {strcpy(tj,"lm");
- add(h,tj);
- lp=fopen("lookm.prg","w");
- if(fopen("mixscr1.prg","r")!=NULL)system("del mixscr*.*");
- fp=fopen("lmop.txt","w");fclose(fp);
- dp=fopen("meno.txt","w");fclose(dp);
- dp=fopen("lm.txt","w");
- }
- else
- if(h==0)
- {fp=fopen("lmop.txt","a");
- dp=fopen("lm.txt","a");
- system("copy lookm.prg mid.prg > oztom");
- mj=(char *)malloc(80*sizeof(char));
- mid=fopen("mid.prg","r");
- lp=fopen("lookm.prg","w");
- fgets(mj,30,mid);
- while (strncmp("sele 10",mj,7)!=0)
- { fputs(mj,lp);
- fgets(mj,30,mid);
- }
- system("del mid.prg");
- strcpy(tj,"lm");
- no=add(h,tj);
- }
- while (rep)
- { repeat=1;
- c=getroad(no);
- if (c==0)
- {rep=0;
- continue;}
- n1++;
- if (repeat==0) continue;
- if (c>1)deflink(name);
- else
- {
- prt(22,15,48|33,"╟δ╢¿╥σ┴¼╜╙┐Γ╡─╩╢▒≡├√(╫ε╢α30╕÷╫╓╖√): ");
- scanf("%30s",name);
- /* strcpy(name,ldb[0].mean);*/
- wd=ldb[0].dbs; rd=ldb[0].dbs;
- }
- n=get_mc();
- strcpy(sele,"mix");
- r=sele_disp(name);
- /* fprintf(lp,"gs%d=%d\n",no+1,r);*/
- cre(no,"lm");
- cre1(no,lp);
- cre2(name,n,dp,duoflag);
- no++;
- for (wh=0;wh<6 && ldb[wh].dbs!=NULL;wh++) free(ldb[wh].dbs);
- }
- fclose(dp);
- pr("dd=' '\n");
- fprintf(lp,"sele 10\nuse LB excl\nzap\nappe from lm.txt deli with #\n");
- fprintf(lp,"use lop excl\nzap\nappe from lmop.txt deli with #\nuse\n");
- fprintf(lp,"link=space(10)\ncty=' '\ndo while .T.\nh=' '\nhh=' '\nno=0\nct=0\ndo &path\\lmenu with 'lm'\n");
- fprintf(lp,"if h='0'\nreturn\nendif\ndf=f&h\nset proc to &path\\pro\ndo while .T.\ndo lop\n");
- fprintf(lp,"if hh='0'\nexit\nendif\ndo relation with num\n\nclear\n");
- dp=fopen("meno.txt","r");
- pr("do case\n");
- for (m=1;m<no+1;m++)
- { fprintf(lp,"case h='%d'\n",m);
- n=1; row=5;
- s=(char *)malloc(256*sizeof(char));
- while (fgets(s,256,dp)&&strcmp(s,"#####\n")!=0)
- { j=1;
- fprintf(lp,"do case\ncase hh='%d'\n@3,5 say '╟δ╩Σ╚δ╠⌡╝■╡─╛▀╠σ─┌╚▌: '\ncon=''\nmcon=''\n",n);
- while (s[j]!='\n')
- { i=0;
- while (s[j]!='#') fh[i++]=s[j++];
- fh[i]='\0';
- i=0; j++;
- while (s[j]!='#') dbf[i++]=s[j++];
- dbf[i]='\0';
- ty=s[j+1];
- i=0; j+=3;
- len=0;
- while (s[j]!='#') len=10*len+s[j++]-'0';
- j++; i=0;
- while (s[j]!='\n'&&s[j]!='#') con[i++]=s[j++];
- con[i]='\0';
- if (s[j]!='\n') j++;
- pr("mark=0\n");
- switch (ty)
- { case 'C':
- case 'L': fprintf(lp,"value=space(%d)\n@%d,5 say '%s' get value\nread\n",len,row,fh);
- fprintf(lp,"con=con+'%s->%s=\"'+TRIM(value)+'\"'\nvalue=TRIM(value)\n",dbf,fh);
- fprintf(lp,"mcon=mcon+'AT(\"&value\",%s->%s)>0'\n",dbf,fh);
- break;
- case 'N': fprintf(lp,"value=space(%d)\n@%d,5 say '%s ┤≤╙┌ ' get value\nread\n",len,row,fh);
- pr("v=trim(value)\nif len(v)<>0\n");
- fprintf(lp,"value=val(value)\ncon=con+'%s->%s>'+str(value,%d)\n",dbf,fh,len);
- fprintf(lp,"mcon=mcon+'%s->%s>'+str(value,%d)\nmark=1\nendif\n",dbf,fh,len);
- fprintf(lp,"value=space(%d)\n@%d,30 say ' ╡╚╙┌ ' get value\nread\n",len,row);
- pr("v=trim(value)\nif len(v)<>0\nif mark=1\ncon=con+'.AND.'\nmcon=mcon+'.AND.'\nendif\n");
- fprintf(lp,"value=val(value)\ncon=con+'%s->%s='+str(value,%d)\n",dbf,fh,len);
- fprintf(lp,"mcon=mcon+'%s->%s='+str(value,%d)\nmark=1\nendif\n",dbf,fh,len);
- fprintf(lp,"value=space(%d)\n@%d,55 say ' ╨í╙┌ ' get value\nread\n",len,row);
- pr("v=trim(value)\nif len(v)<>0\nif mark=1\ncon=con+'.AND.'\nmcon=mcon+'.AND.'\nendif\n");
- fprintf(lp,"value=val(value)\ncon=con+'%s->%s<'+str(value,%d)\n",dbf,fh,len);
- fprintf(lp,"mcon=mcon+'%s->%s<'+str(value,%d)\nendif\n",dbf,fh,len);
- break;
- case 'D': fprintf(lp,"value=' / / '\n@%d,5 say '%s ═φ╙┌ ' get value pict '@D'\nread\n",row,fh);
- pr("if value<>' / / '\nmark=1\n");
- fprintf(lp,"con=con+'%s->%s>'+'CTOD(\"'+value+'\")'\n",dbf,fh);
- fprintf(lp,"mcon=mcon+'%s->%s>'+'CTOD(\"'+value+'\")'\nendif\n",dbf,fh);
- fprintf(lp,"value=' / / '\n@%d,30 say ' ╡╚╙┌ ' get value pict '@D'\nread\n",row);
- pr("if value<>' / / '\nif mark=1\ncon=con+'.AND.'\nmcon=mcon+'.AND.'\nendif\n");
- fprintf(lp,"con=con+'%s->%s='+'CTOD(\"'+value+'\")'\n",dbf,fh);
- fprintf(lp,"mcon=mcon+'%s->%s='+'CTOD(\"'+value+'\")'\nmark=1\nendif\n",dbf,fh);
- fprintf(lp,"value=' / / '\n@%d,55 say ' ╘τ╙┌ ' get value pict '@D'\nread\n",row);
- pr("if value<>' / / '\nif mark=1\ncon=con+'.AND.'\nmcon=mcon+'.AND.'\nendif\n");
- fprintf(lp,"con=con+'%s->%s<'+'CTOD(\"'+value+'\")'\n",dbf,fh);
- fprintf(lp,"mcon=mcon+'%s->%s<'+'CTOD(\"'+value+'\")'\nendif\n",dbf,fh);
- break;
- }
- if (strcmp(con,"")!=0) { fprintf(lp,"con=con+'%s'\n",con); fprintf(lp,"mcon=mcon+'%s'\n",con); }
- row++;
- }
- n++;
- pr("endcase\n");
- }
- free(s);
- }
- /** pr("endcase\ndo lcr\ndo shut\nendif\nenddo\nenddo\nreturn\n");**/
- /**/
- pr("endcase\n");
- /* if (duoflag)
- pr("do lcr with \"1\"\n");
- else
- pr("do lcr with \"0\"\n");*/
- pr("do lcr with dd\n");
- pr("do shut\nendif\nenddo\nenddo\nreturn\n");
- /**/
- pr("**************************************************\n");
- fclose(lp);
- fclose(dp);
- /*dp=fopen("meno.txt","w");fclose(dp);*/
- system("cls");
- cursor(8,15);
- color_puts("*** ╫Θ ║╧ ╚╬ ╥Γ ╠⌡ ╝■ ▓Θ ╤» ╔· │╔ ═Ω ▒╧ ***",10);
- dela();
- }
- /*-------------------------------------------*/
- /* ╢¿ ╥σ ╫Θ ║╧ ╣╠ ╢¿ ╠⌡ ╝■ */
- /*-------------------------------------------*/
- get_fc(l,cp)
- int l;
- FILE *cp;
- { int i,n=0,N=0,NN=0,mark;
- int c,nf,nd,nt,nm,flag;
- char DD[9],ss[256],dd[120],tt[10],*str,*ms;
- char FF[11],midchr[11];
- int row,col,m,con=1,j,k;
- FILE *sp;
- i=0; strcpy(ss,"#"); strcpy(dd,"#");
- cls(1,1,25,80,48|33);
- sp=fopen("lfop.txt","a");
- rd=ldb[0].dbs;
- wd=ldb[0].dbs;
- judge(0);
- n=in_c(&i);
- col=1;
- prt(16,col,0|30,"%s",wd->db[n-1].field);
- strcat(ss,wd->db[n-1].field);
- strcat(dd,ldb[i].name);
- strcat(dd,"#");
- tt[N++]=wd->db[n-1].type;
- while (con!=0)
- { prt(22,0,48|33,"╠⌡╝■╣╪╧╡░ⁿ└¿: 1_.AND. 2_.OR. 3_.NOT. 4_.AND..NOT. 5_.OR..NOT. ╟δ╤í╘±(0╜ß╩°):");
- while ((con=getn(0,5,22,77))=='u'||con=='U'||con=='d'||con=='D') ;
- col+=10;
- cursor(16,col);
- switch (con)
- { case 1 : print1(0|30,".AND.");
- col+=5;
- strcat(ss,"#.AND.#");
- break;
- case 2 : print1(0|30,".OR.");
- col+=4;
- strcat(ss,"#.OR.#");
- break;
- case 3 : print1(0|30,".NOT.");
- col+=5;
- strcat(ss,"#.NOT.#");
- break;
- case 4 : print1(0|30,".AND..NOT.");
- col+=10;
- strcat(ss,"#.AND..NOT.#");
- break;
- case 5 : print1(0|30,".OR..NOT.");
- col+=9;
- strcat(ss,"#.OR..NOT.#");
- break;
- case 0 : strcat(ss,"#");
- tt[N]='\0';
- fprintf(cp,"con%d%d=\"",l+1,NN+1);
- ms=(char *)malloc(300*sizeof(char));
- for (nm=0;nm<300;nm++) ms[nm]='\0';
- str=(char *)malloc(33*sizeof(char));
- cls(1,2,25,80,0|30);
- prt(0,1,0|30,"%s",explain);
- prt(4,5,0|30,"─·╢¿╥σ╡─▓Θ╤»╠⌡╝■╬¬:");
- cursor(5,1);
- prt(5,1,0|30,"------------------------------------------------------------------------------------------");
- prt(6,3,0|30,"%s",ss);
- prt(8,5,0|30,"▓Θ╤»╠⌡╝■╡─╛▀╠σ╓╡");
- print1(0|30," ");
- /*color_puts(" ",10);*/
- row=9;
- nf=1;
- nd=1;
- nt=0;
- nm=0; getchar();
- while (ss[nf]!='\0')
- { cursor(row,3);
- j=0;
- /* while (dd[nd]!='#') DD[j++]=dd[nd++];
- DD[j]='\0';
- j=0;*/
- while (ss[nf]!='#') { print1(0|30,"%c",ss[nf]); FF[j++]=ss[nf++]; }
- FF[j]='\0';
- j=0;
- while (dd[nd]!='#') DD[j++]=dd[nd++];
- DD[j]='\0';
- cursor(row,13);
- mark=0;
- k=0;
- flag=0;
- if (tt[nt]=='C') { strcat(ms,"AT("); nm +=3; }
- else { strcat(ms,DD); strcat(ms,"->"); strcat(ms,FF);
- nm +=strlen(DD)+strlen(FF)+2;
- }
- switch (tt[nt])
- { case 'C' :
- case 'L' : print1(0|30," = ");
- if (tt[nt]=='L') ms[nm++]='=';
- ms[nm++]='"';
- fprintf(cp,"%s->%s='",DD,FF);
- cursor(row,16);
- while ((c=getchar())!='\n')
- {fprintf(cp,"%c",c); ms[nm++]=c; }
- fprintf(cp,"'");
- ms[nm++]='"';
- break;
- case 'N' : print1(0|30," > = < ");
- cursor(row,16);
- while ((c=getchar())!='\n')
- { if (k==0) { fprintf(cp,"%s->%s>",DD,FF); ms[nm++]='>'; }
- k=1;
- mark=1;
- fprintf(cp,"%c",c);
- ms[nm++]=c;
- }
- k=0;
- cursor(row,28);
- while ((c=getchar())!='\n')
- { if (mark&&k==0)
- { fprintf(cp,".OR.%s->%s=",DD,FF);
- strcat(ms,".OR."); strcat(ms,DD);
- strcat(ms,"->"); strcat(ms,FF);
- nm+=strlen(DD)+strlen(FF)+6; ms[nm++]='=';
- }
- else if (k==0) { fprintf(cp,"%s->%s=",DD,FF); ms[nm++]='='; }
- fprintf(cp,"%c",c);
- ms[nm++]=c;
- k=1;
- mark=1;
- flag=1;
- }
- k=0;
- cursor(row,40);
- while ((c=getchar())!='\n')
- { if (mark&&k==0) { if (flag)
- { fprintf(cp,".OR."); strcat(ms,".OR."); nm+=4; }
- else
- { fprintf(cp,".AND."); strcat(ms,".AND."); nm+=5; }
- fprintf(cp,"%s->%s<",DD,FF);
- strcat(ms,DD); strcat(ms,"->"); strcat(ms,FF);
- nm+=strlen(DD)+strlen(FF)+2; ms[nm++]='<';
- }
- else if (k==0) { fprintf(cp,"%s->%s<",DD,FF); ms[nm++]='<'; }
- fprintf(cp,"%c",c);
- ms[nm++]=c;
- k=1;
- }
- break;
- case 'D' : print1(0|30," ╘τ╙┌ / / ╡╚╙┌ / / ═φ╙┌ / / ");
- if ((c=getn(0,12,row,19))!=0)
- { fprintf(cp,"%s->%s<CTOD('",DD,FF);
- mark=1;
- strcat(ms,"<CTOD(");
- nm+=6; ms[nm++]='"';
- fprintf(cp,"%d/",c);
- itoa(c,str,10); strcat(ms,str); nm+=strlen(str); ms[nm++]='/';
- while ((c=getn(1,31,row,23))==0) error();
- fprintf(cp,"%d/",c);
- itoa(c,str,10); strcat(ms,str); nm+=strlen(str); ms[nm++]='/';
- while ((c=getn(1,99,row,27))==0) error();
- fprintf(cp,"%d')",c);
- itoa(c,str,10); strcat(ms,str); nm+=strlen(str);
- ms[nm++]='"'; ms[nm++]=')';
- }
- if ((c=getn(0,12,row,37))!=0)
- { if (mark)
- { fprintf(cp,".OR.%s->%s=CTOD('",DD,FF);
- strcat(ms,".OR."); strcat(ms,DD); strcat(ms,"->");
- strcat(ms,FF); strcat(ms,"=CTOD(");
- nm+=strlen(DD)+strlen(FF)+8; ms[nm++]='"';
- }
- else { fprintf(cp,"%s->%s=CTOD('",DD,FF);
- strcat(ms,"=CTOD("); nm+=6; ms[nm++]='"';
- }
- mark=1;
- fprintf(cp,"%d/",c);
- itoa(c,str,10); strcat(ms,str); nm+=strlen(str); ms[nm++]='/';
- while ((c=getn(1,31,row,41))==0) error();
- fprintf(cp,"%d/",c);
- itoa(c,str,10); strcat(ms,str); nm+=strlen(str); ms[nm++]='/';
- while ((c=getn(1,99,row,45))==0) error();
- fprintf(cp,"%d')",c);
- itoa(c,str,10); strcat(ms,str); nm+=strlen(str);
- ms[nm++]='"'; ms[nm++]=')';
- flag=1;
- }
- if ((c=getn(0,12,row,55))!=0)
- { if (mark) { if (flag) { fprintf(cp,".OR.");
- strcat(ms,".OR."); nm+=4;
- }
- else { fprintf(cp,".AND."); strcat(ms,".AND."); nm+=5; }
- fprintf(cp,"%s->%s>CTOD('",DD,FF);
- strcat(ms,DD); strcat(ms,"->"); strcat(ms,FF);
- strcat(ms,">CTOD("); nm+=strlen(DD)+strlen(FF)+8; ms[nm++]='"';
- }
- else { fprintf(cp,"%s->%s>CTOD('",DD,FF);
- strcat(ms,">CTOD("); nm+=6; ms[nm++]='"';
- }
- fprintf(cp,"%d/",c);
- itoa(c,str,10); strcat(ms,str); nm+=strlen(str); ms[nm++]='/';
- while ((c=getn(1,31,row,59))==0) error();
- fprintf(cp,"%d/",c);
- itoa(c,str,10); strcat(ms,str); nm+=strlen(str); ms[nm++]='/';
- while ((c=getn(1,99,row,63))==0) error();
- fprintf(cp,"%d')",c);
- itoa(c,str,10); strcat(ms,str); nm+=strlen(str);
- ms[nm++]='"'; ms[nm++]=')';
- }
- break;
- }
- if (tt[nt++]=='C')
- { ms[nm++]=','; strcat(ms,DD); strcat(ms,"->");
- strcat(ms,FF); strcat(ms,")>0"); nm+=strlen(DD)+strlen(FF)+5;
- }
- row++;
- nf++;
- while (ss[nf]!='#'&&ss[nf]!='\0') { fprintf(cp,"%c",ss[nf]); ms[nm++]=ss[nf++]; }
- if (ss[nf]!='\0') nf++;
- nd++;
- }
- fprintf(cp,"\"\n");
- if (N>1)
- { prt(23,10,0|30,"╟δ╢¿╥σ▓Θ╤»╠⌡╝■╡─╩╢▒≡├√: ");
- scanf("%s",str);
- cls(2,1,24,80,0|30);
- }
- else strcpy(str,wd->db[n-1].field);
- if (strchr(tt,'C')!=NULL)
- { fprintf(sp,"#%s#,#C#\n",str); fprintf(cp,"mcon%d%d='%s'\n",l+1,NN+1,ms); }
- else fprintf(sp,"#%s#,##\n",str);
- free(ms);
- NN++;
- prt(23,20,0|30,"╩╟╖±╝╠╨°╢¿╥σ▓Θ╤»╠⌡╝■(Y/N)? ");
- /* scanf("%c",&c);*/
- while (((c=getchar())!='N')&&(c!='Y')&&(c!='y')&&(c!='n'));
- if (c!='Y'&&c!='y') { fclose(sp); continue; }
- else
- { cls(1,1,25,80,48|33);
- /* system("cls");*/
- col=1;
- judge(0);
- strcpy(ss,"#");
- strcpy(dd,"#");
- N=0;
- con=1;
- }
- break;
- }
- n=in_c(&i);
- if (col>68) { col=1; cursor(17,col); }
- else cursor(16,col);
- print1(0|30,"%s",wd->db[n-1].field);
- /*printf("%s",wd->db[n-1].field);*/
- strcat(ss,wd->db[n-1].field);
- strcat(dd,ldb[i].name);
- strcat(dd,"#");
- tt[N++]=wd->db[n-1].type;
- }
- return(NN);
- }
- /*-------------------------------------------------*/
- /* ╫Θ ║╧ ╣╠ ╢¿ ╠⌡ ╝■ ▓Θ ╤» ╔· │╔ */
- /*-------------------------------------------------*/
- fix(h)
- int h;
- { int /*no,*/rep=1,i,j,c,n,r,wh;
- char tj[9],name[31];
- FILE *fq,*dp,*lp,*fp;
- system("cls");
- cursor(8,15);color_puts("*** ╧┬ ├µ ╔· │╔ ╫Θ ║╧ ╣╠ ╢¿ ╠⌡ ╝■ ▓Θ ╤» ***",10);
- cursor(14,8);color_puts(" ╘┌╙ª╙├╧╡═│╓╨, ╬¬─▄╖╜▒π▓Θ╒╥┬·╫π─│╣╠╢¿▓╗▒Σ╠⌡╝■╡─╝╟┬╝, \n╟δ╢¿╥σ▓Θ╤»╠⌡╝■, ▓ó╕°│÷╠⌡╝■╫╓╢╬╡─╚╖╟╨╓╡.\n\
- \n ─·╝╚┐╔╥╘┤╙╥╗╕÷┐Γ╓╨╤í╫╓╢╬╠ß╠⌡╝■, ╥▓┐╔╥╘╘┌╢¿╥σ┴╦┴¼╜╙┐Γ\n║≤, ┤╙▓╗═¼┐Γ╓╨╤í╫╓╢╬╠ß╠⌡╝■.",10);
- go_on(); explain=(char *)malloc(25*sizeof(char)); strcpy(explain,"*** ╫Θ║╧╣╠╢¿╠⌡╝■▓Θ╤» ***");
- no=0;
- if(h==1){strcpy(tj,"lf");add(h,tj);lp=fopen("lookf.prg","w");dp=fopen("lf.txt","w");
- if (fopen("lfop.txt","r")!=NULL) system("del lfop.txt");
- if(fopen("fixscr1.prg","r")!=NULL)system("del fixscr*.*");}
- else if(h==0){dp=fopen("lf.txt","a");
- system("copy lookf.prg mid.prg > oztom");
- mj=(char *)malloc(80*sizeof(char));
- mid=fopen("mid.prg","r");lp=fopen("lookf.prg","w");
- fgets(mj,30,mid);
- while (strncmp("sele 10",mj,7)!=0)
- {fputs(mj,lp);
- fgets(mj,30,mid);}
- system("del mid.prg");
- strcpy(tj,"lf");
- no=add(h,tj);}
- while (rep)
- { repeat=1;
- c=getroad(no);
- if (c==0)
- { rep=0;
- continue;
- }
- n1++;
- if (repeat==0) continue;
- if (c>1) deflink(name);
- else
- {
- prt(22,15,48|33,"╟δ╢¿╥σ┴¼╜╙┐Γ╡─╩╢▒≡├√(╫ε╢α30╕÷╫╓╖√): ");
- scanf("%30s",name);
- /* strcpy(name,ldb[0].mean);*/
- wd=ldb[0].dbs; rd=ldb[0].dbs;
- }
- n=get_fc(no,lp);
- strcpy(sele,"fix");
- r=sele_disp(name);
- /* fprintf(lp,"gs%d=%d\n",no+1,r);*/
- cre(no,"lf");
- cre1(no,lp);
- cre2(name,n,dp,duoflag);
- no++;
- for (wh=0;wh<6 && ldb[wh].dbs!=NULL;wh++) free(ldb[wh].dbs);
- }
- fclose(dp);
- /**/pr("dd=' '\n");
- /** pr("sele 10\nuse LDB excl\nzap\nappe from lf.txt deli with #\n");**/
- pr("sele 10\nuse LB excl\nzap\nappe from lf.txt deli with #\n");
- pr("use lop excl\nzap\nappe from lfop.txt deli with #\nuse\n");
- pr("link=space(10)\ncty=' '\ndo while .T.\nh=' '\nhh=' '\nno=0\nct=0\n");
- pr("do &path\\lmenu with 'lf'\nif h='0'\nreturn\nendif\ndf=f&h\nset proc to &path\\pro\ndo while .T.\ndo lop\n");
- pr("if hh='0'\nexit\nendif\ndo relation with num\n");
- pr("con='con'+h+hh\ncon=&con\nif cty='C'\n");
- /** pr("mcon='mcon'+h+hh\nmcon=&mcon\nendif\ndo lcr\ndo shut\nendif\nenddo\nenddo\nreturn\n");**/
- /**/
- pr("mcon='mcon'+h+hh\nmcon=&mcon\nendif\n");
- /* if (duoflag)
- pr("do lcr with \"1\"\n");
- else
- pr("do lcr with \"0\"\n") ;*/
- pr("do lcr with dd\n");
- pr("do shut\nendif\nenddo\nenddo\nreturn\n");
- /**/
- pr("******************************************************\n");
- fclose(lp);
- system("cls");
- cursor(8,15);
- printf("*** ╫Θ ║╧ ╣╠ ╢¿ ╠⌡ ╝■ ▓Θ ╤» ╔· │╔ ═Ω ▒╧ ***");
- dela();
- }
- /*----------------------------------------------*/
- /* ╤í ╞Ñ ┼Σ ─ú ║² ▓Θ ╤» ╫╓ ╢╬ */
- /*----------------------------------------------*/
- get_mf(l,sp,dp)
- int l;
- FILE *sp,*dp;
- { int m,n=0,i,j,k=1,ct=0;
- char M[128];
- struct DBF *p;
- system("cls");
- i=0;
- j=0;
- getmemd();
- wd=newd;
- rd=newd;
- p=ldb[0].dbs;
- m=0;
- while (m<p->ctc)
- { if (p->db[m].type=='C')
- { wd->db[i].type=p->db[m].type;
- wd->db[i].len=p->db[m].len;
- wd->db[i].dec=p->db[m].dec;
- strcpy(wd->db[i].field,p->db[m].field);
- wd->ctc++;
- i++;
- M[j++]=0;
- }
- m++;
- if (m==p->ctc&&p->next!=NULL) { m=0; p=p->next; }
- if (i%COUNT==0&&i!=0)
- { getmemd();
- wd->next=newd;
- newd->last=wd;
- wd=newd;
- i=0;
- }
- }
- wd=rd;
- Cdisp();
- prt(16,10,48|33,"╟δ╤í╘±╞Ñ┼Σ─ú║²▓Θ╤»╫╓╢╬: ");
- while ((n=get(16,34))!=0)
- { if (n=='U'||n=='D')
- { if (n=='U'&&wd->last!=NULL) wd=wd->last;
- if (n=='D'&&wd->next!=NULL) wd=wd->next;
- Cdisp();
- continue;
- }
- else if (M[n-1]!=1) { ct++; M[n-1]=1; mark(n,"*"); }
- else { M[n-1]=0; mark(n," "); ct--; }
- }
- j=0;
- i=0;
- wd=rd;
- while (i<wd->ctc)
- { if (M[j++]==1)
- { fprintf(sp,"k%d%d='%s'\nlen%d%d=%d\n",l+1,k,wd->db[i].field,l+1,k,wd->db[i].len);
- k++;
- fprintf(dp,"#%s#,##\n",wd->db[i].field);
- }
- i++;
- if (i==wd->ctc&&wd->next!=NULL) { i=0; wd=wd->next; }
- }
- wd=ldb[0].dbs;/*add*/
- rd=wd;/*add*/
- return(ct);
- }
- /*----------------------------------------------*/
- /* ╧╘ ╩╛ ┐Γ ╓╨ ╫╓ ╖√ ╨═ ╫╓ ╢╬ */
- /*----------------------------------------------*/
- Cdisp()
- { int row,col,i,j,n=0;
- struct DBF *p;
- cls(1,1,25,80,48|33);
- prt(0,1,0|30,"%s",explain);
- p=rd;
- while (p!=wd) { n+=p->ctc; p=p->next; }
- prt(1,10,48|33,"┐Γ # %s # ╓╨╫╓╖√╨═╫╓╢╬╚τ╧┬",ldb[0].mean);
- cls(6,6,17,73,0|1);
- cls(5,5,16,71,0|30);
- frame(4,4,16,70,0|30);
- row=5;
- col=7;
- for (i=0;i<wd->ctc;i++)
- { prt(row,col,0|30,"%2d. %-s",n+i+1,wd->db[i].field);
- col+=16;
- if (col>70)
- { row++;
- col=7;
- }
- }
- }
- /*-------------------------------------------*/
- /* ╞Ñ ┼Σ ─ú ║² ▓Θ ╤» ╔· │╔ */
- /*-------------------------------------------*/
- match(h)
- int h;
- { int /*no,*/rep=1,c,n,i,j,r,wh;
- char tj[9],name[21];
- FILE *fq,*lp,*dp,*sp;
- system("cls");
- cursor(8,18);
- color_puts("*** ╧┬ ├µ ╔· │╔ ╞Ñ ┼Σ ─ú ║² ▓Θ ╤» ***",10);
- cursor(13,8);
- color_puts(" ╬¬┴╦─▄╢╘─│╝╟╥Σ─ú║²╡──┌╚▌╜°╨╨▓Θ╤», ─·┐╔╢╘╫╓╢╬▓╔╙├╞Ñ┼Σ\n\n─ú║²▓Θ╤», ╝┤╫╙┤«▓Θ╤».",10);
- cursor(18,15);
- color_puts("╫ó╥Γ: ╞Ñ┼Σ─ú║²▓Θ╤»╓╗─▄╢╘╫╓╖√╨═╫╓╢╬.",10);
- go_on();
- explain=(char *)malloc(21*sizeof(char));
- strcpy(explain,"*** ╞Ñ┼Σ─ú║²▓Θ╤» ***");
- no=0;
- system("copy c:\\cdbag4\\match.prg *.* > oztom");
- if(h==1){strcpy(tj,"lp");add(h,tj);lp=fopen("lookp.prg","w");
- sp=fopen("lpop.txt","w");
- if(fopen("matscr1.prg","r")!=NULL)system("del matscr*.*");
- dp=fopen("lp.txt","w");}
- else if(h==0)
- {sp=fopen("lpop.txt","a");
- dp=fopen("lp.txt","a");
- system("copy lookp.prg mid.prg > oztom");
- mj=(char *)malloc(80*sizeof(char));
- mid=fopen("mid.prg","r");
- lp=fopen("lookp.prg","w");
- fgets(mj,30,mid);
- while (strncmp("sele 10",mj,7)!=0)
- { fputs(mj,lp);
- fgets(mj,30,mid);
- }
- system("del mid.prg");
- strcpy(tj,"lp");
- no=add(h,tj);}
- while (rep)
- { repeat=1;
- c=getroad(no);
- if (c==0)
- { rep=0;
- continue;
- }
- n1++;
- if (repeat==0) continue;
- if (c>1) deflink(name);
- else
- {
- prt(22,15,48|33,"╟δ╢¿╥σ┴¼╜╙┐Γ╡─╩╢▒≡├√(╫ε╢α30╕÷╫╓╖√): ");
- scanf("%30s",name);
- /* strcpy(name,ldb[0].mean);*/
- wd=ldb[0].dbs; rd=ldb[0].dbs;
- }
- n=get_mf(no,lp,sp);
- strcpy(sele,"mat");
- r=sele_disp(name);
- /* fprintf(lp,"gs%d=%d\n",no+1,r);*/
- cre(no,"lp");
- cre1(no,lp);
- cre2(name,n,dp,duoflag);
- no++;
- for (wh=0;wh<6 && ldb[wh].dbs!=NULL;wh++) free(ldb[wh].dbs);
- }
- fclose(dp);
- /**/pr("dd=' '\n");
- /** pr("road=path\nsele 10\nuse LDB excl\nzap\nappe from lp.txt deli with #\n");**/
- /**/ pr("road=path\nsele 10\nuse LB excl\nzap\nappe from lp.txt deli with #\n");
- pr("use lop excl\nzap\nappe from lpop.txt deli with #\nuse\n");
- pr("link=space(10)\ncty=' '\nbool=.F.\ndo while .T.\nh=' '\nhh=' '\n");
- pr("no=0\nct=0\ndo &path\\lmenu with 'lp'\nif h='0'\nreturn\nendif\ndf=f&h\n");
- pr("set proc to &path\\pro\ndo while .T.\ndo lop\nif hh='0'\nexit\nendif\n");
- pr("sele a\nUSE &PATH\\DB\nLOCA FOR NAME=B1\nIF SHAREFLAG='Y' .OR. SHAREFLAG='y'\nROAD=TRIM(SHAREPATH)\nUSE\n");
- pr("endif\ndo relation with num\nsele 1\ngo top\nclear\n");
- pr("key='k'+h+hh\nkey=&key\nlen='len'+h+hh\nmat=space(&len)\n");
- pr("@10,10 say '╟δ╩Σ╚δ &key ╞Ñ┼Σ╫╓┤«: ' get mat\n");
- pr("read\n");
- pr("key=trim(key)\n");
- pr("mat=trim(mat)\n");
- pr("POINT=1\nRUPT=0\nPAT1=' '\nPAT2=' '\nPAT3=' '\nPSCH=0\nMAT=MAT+'*'\n");
- pr("DO WHILE POINT<LEN(MAT)\nEOMA=SUBSTR(MAT,POINT,1)\nIF EOMA='*'.OR.EOMA='?'\n");
- pr("NEXT=SUBSTR(MAT,POINT+1,1)\nXX=NEXT<>'*'.AND.NEXT<>'?'\nIF PSCH=1.AND.XX\nRUPT=RUPT+1\nENDIF\n");
- pr("ELSE\nPSCH=1\nDO CASE\nCASE RUPT=0\nPAT1=TRIM(PAT1)+EOMA\nCASE RUPT=1\nPAT2=TRIM(PAT2)+EOMA\n");
- pr("CASE RUPT=2\nPAT3=TRIM(PAT3)+EOMA\nCASE RUPT=3\nEXIT\nENDCASE\nENDIF\nPOINT=POINT+1\nENDDO\n");
- pr("MAT=SUBSTR(MAT,1,LEN(MAT)-1)\nset color to w+/b\nclear\n@10,10 say '╒²╘┌▓Θ╤»,╟δ╔╘║≥...'\n");
- pr("ww=.t.\ndo while .not.eof()\nKEY2=TRIM(&KEY)\n");
- pr("IF (AT(PAT1,KEY2)<>0.OR.PAT1=' ').AND.(AT(PAT2,KEY2)<>0.OR.PAT2=' ').AND.(AT(PAT3,KEY2)<>0.OR.PAT3=' ')\n");
- /** pr("do match\nENDIF\nclear\nif bool\nif ww\n*if gs=1\n*do form\nif .not. ww\ngo bottom\nendif\n");
- pr("else\ndo &ftprg\nendif\ndo rep\nelse\nexit\nendif\nbool=.F.\nendif\nskip\n");**/
- /**/
- pr("do match\nendif\nclea\nif bool\nif ww\n");
- /*** if (!duoflag)***/
- /* pr("if dd=\"0\"\ndo form\nendif\n");*/
- pr("if .not. ww\ngo bottom\nendif\n");
- /* pr("else \n");*/
- /*** if(!duoflag)***/
- /* pr("if dd=\"0\"\ndo &ftprg\nendif\n");*/
- pr("do &ftprg\n");
- pr("do rep\nelse\nexit\nendif\nbool=.F.\nendif\nskip\n");
- /** pr("pat1=' '\npat2=' '\npat3=' '\nenddo\ndo d_p\ndo shut\nendif\nenddo\nenddo\nreturn\n");**/
- /**/ pr("pat1=' '\npat2=' '\npat3=' '\nenddo\ndo d_p with dd\ndo shut\nendif\nenddo\nenddo\nreturn\n");
- pr("**************************************\n");
- fclose(lp);
- fclose(sp);
- system("cls");
- cursor(8,15);
- color_puts("*** ╞Ñ ┼Σ ─ú ║² ▓Θ ╤» ╔· │╔ ═Ω ▒╧ ***",10);
- dela();
- }
- /*----------------------------------*/
- /* ╤╙ │┘ ╫╙ │╠ ╨≥ */
- /*----------------------------------*/
- 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);
- }
- /*-------------------------------------*/
- /* ╢┴ ╚í ╥╗ ╕÷ ╩² ╫╓ */
- /*-------------------------------------*/
- getn(i,j,row,col)
- int i,j,row,col;
- { int key,n=0;
- cursor(row,col);
- while ((key=getcc())!=0x0D)
- { putchar(key);
- switch (key)
- { case 18688 : return('U');
- 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>=i&&n<=j)||n==0) return(n);
- else { error();
- getn(i,j,row,col);
- }
- }
- /*-------------------------------------*/
- /* ╢┴ ╚í ╥╗ ╕÷ ╫╓ ╖√ */
- /*-------------------------------------*/
- get(row,col)
- int row,col;
- { int key,c=0,n=0;
- struct DBF *p;
- /* 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 8 : if (n!=0) n=n/10;
- else { error(); cursor(row,col); }
- break;
- default : n=10*n+key%256-'0';
- break;
- }
- }
- p=rd;
- while (p!=wd) { c+=p->ctc; p=p->next; }
- if ((n>=c+1&&n<=c+wd->ctc)||n==0) return(n);
- else{ error();
- get(row,col);
- }
- }
- /*-------------------------------*/
- /* ╣Γ ▒Ω ╢¿ ╬╗ */
- /*-------------------------------*/
- cursor(x,y)
- int x,y;
- { union REGS inregs;
- union REGS outregs;
- inregs.h.ah=2;
- inregs.h.bh=0;
- inregs.h.dh=x;
- inregs.h.dl=y;
- int86(0x10,&inregs,&outregs);
- }
-
- /*----------------------------------------------*/
- /* ░┤ ╤╒ ╔½ ╩Σ │÷ ╥╗ ╫╓ ╖√ ┤« */
- /*----------------------------------------------*/
-
- color_puts(s,color)
- char *s;
- int color;
- { union REGS r;
- int x,y,z;
- now_cursor(&x,&z);
- y=z;
- while (*s)
- { if (*s=='\n')
- { s++;
- x++;
- y=z;
- continue;
- }
- cursor(x,y);
- r.h.ah=9;
- r.h.al=*s++;
- r.h.bl=color;
- r.h.bh=0;
- r.x.cx=1;
- int86(0x10,&r,&r);
- y++;
- cursor(x,y);
- }
- return;
- }
- /*----------------------------------------*/
- /* ╚í ╣Γ ▒Ω ╡▒ ╟░ ╬╗ ╓├ */
- /*----------------------------------------*/
- 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;
- }
- /*-------------------------------------------------------------------*/
- /* ╚╖ ╢¿ ╡▒ ╟░ ╣ñ ╫≈ ╓╕ ╒δ ▓ó ╧╘ ╩╛ ┐Γ ╜ß ╣╣ ▓╦ ╡Ñ */
- /*-------------------------------------------------------------------*/
- judge(c)
- int c;
- { int n=0;
- /* while (wb->base[n].dbs!=rd&&n<10) { n++;
- if (n%10==0&&n!=0&&wb->next!=NULL) {
- wb=wb->next; n=0; } }*/
- while (ldb[n].dbs!=rd) n++;
- if (c=='U'&&wd->last!=NULL) {wd=wd->last;}
- if (c=='D'&&wd->next!=NULL) {wd=wd->next;}
- disp_base(n);
- cursor(3,10);
- return(n);
- }
- /*-------------------------------------*/
- /* ╩Σ │÷ ╠ß ╩╛ ▒Ω ╓╛ */
- /*-------------------------------------*/
- mark(n,c)
- int n;
- char *c;
- { int x,y;
- x=(n%COUNT-1)/4+5;/*3;*/
- if (n%COUNT==0) x=((n-1)%COUNT-1)/4+5;
- y=(n-1)%4*16+6;
- cursor(x,y);
- prt(x,y,0|30,"%s",c);
- /* putchar(c);*/
- }
-
- /*-------------------------------------------------*/
- /* ╡╚ ┤² ╝ⁿ ╚δ ╥╗ ╫╓ ╖√ ║≤ ╝╠ ╨° */
- /*-------------------------------------------------*/
- go_on()
- { cursor(23,5);
- color_puts("░┤╚╬╥Γ╝ⁿ╝╠╨°íºíºíº",15);
- bioskey(0);
- cursor(23,5);
- color_puts(" ",10);
- }
- /*-------------------------------------*/
- /* ╟σ │² ▓┐ ╖╓ ╞┴ ─╗ */
- /*-------------------------------------*/
- clear(d,line,lx,ly,rx,ry)
- int d,line,lx,ly,rx,ry;
- { union REGS inregs,outregs;
- inregs.h.ah=d;
- inregs.h.al=line;
- inregs.h.ch=lx;
- inregs.h.cl=ly;
- inregs.h.dh=rx;
- inregs.h.dl=ry;
- inregs.h.bh=0;
- int86(0x10,&inregs,&outregs);
- }
- /*----------------------------------------*/
- /* ╔Ω ╟δ ╥╗ ┐Γ ╨┼ ╧ó ┐Θ */
- /*----------------------------------------*/
- getmemb()
- { int i,n;
- newb=(struct BASE *)malloc(sizeof(struct BASE));
- newb->ctc=0;
- newb->last=newb->next=NULL;
- for (i=0;i<10;i++)
- { strcpy(newb->base[i].mean,"\0");
- strcpy(newb->base[i].name,"\0");
- /* for (n=0;n<4;n++)
- strcpy(newb->base[i].key[n],"\0");*/
- newb->base[i].dbs=NULL;
- }
- }
- /*----------------------------------------------*/
- /* ╔Ω ╟δ ╥╗ ┐Γ ╜ß ╣╣ ╨┼ ╧ó ┐Θ */
- /*----------------------------------------------*/
- getmemd()
- { int i;
- newd=(struct DBF *)malloc(sizeof(struct DBF));
- newd->ctc=0;
- newd->last=newd->next=NULL;
- for (i=0;i<COUNT;i++)
- { strcpy(newd->db[i].field,"\0");
- newd->db[i].type=' ';
- newd->db[i].len=0;
- newd->db[i].dec=0;
- }
- }
-
- /*----------------------------------*/
- /* ╤í ╧╘ ╩╛ ╫╓ ╢╬ */
- /*----------------------------------*/
- sele_disp(dname)
- char dname[31];/*without*/
- { int r,i,j,n,c,t,k=0,bb=1;/*ldb[bb]*/
- /**/ duoflag=0;
- system("cls");
- cursor(0,1);
- color_puts(explain,14|16);
- cursor(8,10);
- color_puts(" *** ╧┬├µ╟δ╢¿╥σ▓Θ╤»╜ß╣√╧╘╩╛╧ε ***\n\n─·╓╗╨Φ┤╙▒╗┴¼╜╙╡─╕≈╕÷┐Γ╓╨╖╓▒≡╤í╘±╚⌠╕╔╫╓╢╬╝┤┐╔.",11);
- i=0;
- color_puts(" ",10);
- cursor(12,10);
- if (ldb[1].dbs!=NULL)
- { printf("─·╢¿╥σ╡─┴¼╜╙┐Γ╬¬ :"); cursor(14,15); }
- else
- printf("─·╓╗╤í╘±┴╦╡Ñ╕÷┐Γ : ");
- while (ldb[i+1].dbs!=NULL) printf("┐Γ # %s # --> ",ldb[i++].mean);
- printf("┐Γ # %s #",ldb[i].mean);
- go_on();
- cls(1,1,25,80,48|33);
- cls(10,12,17,53,0|1);
- cls(9,11,16,51,0|30);
- frame(8,10,16,50,0|30);
- prt(0,1,0|30,"%s",explain);
- /**/
- prt(9,14,0|30,"*** ▓Θ╤»╜ß╣√╝╟┬╝╧╘╩╛╢¿╥σ ***");
- prt(11,14,0|30,"1. ╡Ñ╝╟┬╝╖╓▒≡╧╘╩╛");
- prt(13,14,0|30,"2. ╢α╝╟┬╝│╔┼·╧╘╩╛");
- prt(18,25,48|33,"╟δ ╤í ╘±: ");
- r=getn(1,2,18,36);
- /**/
- if (r==2){
- duoflag=1;
- goto ll;
- }
- /**/
- cls(1,1,25,80,48|33);
- cls(10,12,17,53,0|1);
- cls(9,11,16,51,0|30);
- frame(8,10,16,50,0|30);
- prt(0,1,0|30,"%s",explain);
- /**/
-
- prt(9,14,0|30,"*** ▓Θ╤»╜ß╣√╧╘╩╛╢¿╥σ╖╜╩╜ ***");
- prt(11,20,0|30,"1.╧╡ ═│ ╢¿ ╥σ");
- prt(13,20,0|30,"2.╙├ ╗º ╢¿ ╥σ");
- prt(18,25,48|33,"╟δ ╤í ╘±: ");
- r=getn(1,2,18,36);
- if(r==2) {
- if(ldb[1].dbs==NULL){draw(ss0,dname,PATH);savedef(sele);}
- else while(ldb[bb].dbs!=NULL)
- {draw(ss0,dname,PATH);
- savedef(sele);
- bb++;
- }/*ldb[i].name*/
- }
- else
- if(r==1){
- ll: i=0;
- cls(1,1,25,80,48|33);
- while (ldb[i].dbs!=NULL)
- { wd=ldb[i].dbs;
- rd=ldb[i].dbs;
- for (k=0;k<128;k++) MAR[i][k]=0;
- judge(0);
- n=0;
- t=0;
- prt(16,10,48|33,"1--╚½▓┐╧╘╩╛ 2--▓┐╖╓╧╘╩╛");
- prt(18,15,48|33," ");
- prt(18,20,48|33,"╟δ╤í╘±:");
- if ((c=getn(1,2,18,28))==1)
- while (t<wd->ctc)
- { MAR[i][n++]=1;
- t++;
- if (t==wd->ctc&&wd->next!=NULL) { t=0; wd=wd->next; }
- }
- else
- { cls(17,1,19,80,48|33);
- prt(18,15,48|33,"╨Φ╥¬╧╘╩╛╡─╫╓╢╬╙╨(PgUp/PgDn: ╖¡╞┴): "); while ((c=get(18,50))!=0)
- { if (c=='U'||c=='D')
- { judge(c);
- continue;
- }
- if (MAR[i][c-1]!=1) { mark(c,"*"); MAR[i][c-1]=1;}
- else { mark(c," "); MAR[i][c-1]=0; }
- }
- }
- cls(17,1,19,80,48|33);
- i++;
- }
- }
- savedef_xits(sele);
- i=0;
- while (ldb[i].dbs!=NULL)
- { wd=ldb[i].dbs;
- t=i+1;
- while (ldb[t].dbs!=NULL)
- { k=0;
- j=0;
- while (k<wd->ctc&&j<128)
- { if ((c=cmp(wd->db[k].field,ldb[t].dbs))>=0)
- if (MAR[i][j]==1) MAR[t][c]=0;
- j++; k++;
- if (k==wd->ctc&&wd->next!=NULL) { k=0; wd=wd->next; }
- }
- t++;
- }
- i++;
- }
- return(r);
- }
-
- prt(int row,int col,int attr,char *format,...)
- {
- va_list arg;
- char print_str[254],*string;
- va_start(arg,format);
- vsprintf(print_str,format,arg);
- string=print_str;
- _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;
- geninterrupt(0x10);
- ++_DL;
- _AH=(unsigned char)9;
- _AL=*((char *)_SI);
- _SI++;
- _BH=(unsigned char)0;
- _BL=(unsigned char)attr;
- geninterrupt(0x10);
- }
- }
-
- 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);
- }