home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <dos.h>
- #include <alloc.h>
- #include "screen.h"
- #define pr(x) fprintf(fp,x)
- #define black 0
- #define blue 1
- #define green 2
- #define cyan 3
- #define red 4
- #define magenta 5
- #define brown 6
- #define white 7
- #define intense 8
- #define yellow 14
- #define ewhite 15
- #define blue_back 16
- #define green_back 32
- #define cyan_back 48
- #define red_back 64
- #define magenta_back 80
- #define brown_back 96
- #define white_back 112
- #define ESC 27
- #define L_ARROW 275
- #define R_ARROW 277
- #define U_ARROW 272
- #define D_ARROW 280
- #define PgUp 273
- #define PgDn 281
- #define BACKSPACE 8
- #define INS 282
- #define DEL 283
- #define ENTER 13
- #define YES 1
- #define NO -1
- #define FILE1 0
- #define EDIT 1
- #define LINE 2
- #define CCPP 3
- #define GENE 4
- #define FIELD 5
- #define QUIT 6
- #define COUNT 40
-
- typedef struct ss {
- char scr[24][80];
- long int fff[24][80];
- int no, row, col;
- long int range[20][2] ; /* field of N is ranged */
- struct ss *next;
- }screen;
-
- /**typedef struct ss {
- char scr[20][80];
- int fff[20][80];
- int no;
- struct ss *next;
- }screen;**/
- extern screen *myscr,*first;
- struct DBF { struct DB { char field[11]; /* ╫╓╢╬├√ */
- char type; /* ╫╓╢╬└α╨═ */
- int len; /* ╫╓╢╬│ñ╢╚ */
- int dec; /* ╨í╩²╬╗ */
- } db[COUNT];
- struct DBF *last;
- struct DBF *next;
- int ctc; /* ╡▒╟░┐Γ╨┼╧ó┐Θ─┌╩╡╝╩┐Γ╡─╕÷╩² */
- } /** *fcon;**/;
- struct BASE { struct BS { char mean[31]; /* ┐Γ║¼╥σ├√ */
- char name[9]; /* ┐Γ╬─╝■├√ */
- struct DBF *dbs; /* ╓╕╧≥┐Γ╜ß╣╣┐Θ═╖╡╪╓╖ */
- } base[10];
- struct BASE *last;
- struct BASE *next;
- int ctc; /* ╡▒╟░┐Γ╜ß╣╣┐Θ─┌╩╡╝╩┐Γ╫╓╢╬╡─╕÷╩² */
- } *fbase;
- extern struct BASE *wb,*rb,*newb;
- extern struct BS ldb[6];
- extern struct DBF *wd,*rd,*newd;
- extern char *sele;/*road name in scr.prg */
- extern int linkflag,no,cod; /*number of db*/
- extern int MAR[6][128];/*mar=1 in fff*/
- extern int NB,repeat,I,J,m12;/*fff retrun judge*/;
- extern char link[5][31],*explain,path[30],PATH[30];
- extern int ss0[10];
- /**char *hlp[]={
- "Enter ..... ╢¿╬╗ Home ..... ╗¡┐≥/╧▀",
- " End ..... ╔╛│²┐≥/╧▀ Ins ..... ╢╘╜╟╧▀╥╞╢»",
- " Del ..... ╔╛│²╡▒╟░╫╓╖√ íⁿí² ..... ╔╧╧┬╥╞╢»",
- "í·í√ ..... ╫≤╙╥╥╞╢» Tab ..... ╙╥╥╞8╕±",
- "Bksp ..... ╫≤╥╞8╕± Esc ..... ═╦│÷",
- };
- char table[11][3]={"⌐│","⌐╖","⌐Ñ","⌐º","⌐╗","⌐┐","⌐∩","⌐╫","⌐▀","⌐╟","⌐╧"};**/
- /**int prow=23,pcol=66,attr=14|16;**/
- char *tmp;
- int crow[2],ccol[2];
- int in,def=0;
- int count=0,temp,total,update=0;
- int just;
-
-
- int pp,cc;
- int insstate=YES;
- /**char tab[16][3]={
- " ","⌐ñ","⌐ñ","⌐ñ","⌐º","⌐▓","⌐╢","⌐╘","⌐º"
- ,"⌐║","⌐╛","⌐▄","⌐º","⌐─","⌐╠","⌐µ"};**/
- int mpos;
- extern int n1;/*instead of extern no+1*/
-
- /*============================checktab=============================*/
- /**int checktab(line,col)
- int line,col;
- {
- int i;
- for(i=1;i<16;i++)
- {
- if(myscr->scr[line][col]==tab[i][0]&&myscr->scr[line][col+1]==tab[i][1])
- return(1);
- };
- return(0);
- }**/
-
-
-
- int add(k,tj)
- int k;
- char tj[9];
- { FILE *fq;
- char s[3];
- int i=1,j=0;
- strcpy(s,tj);
- if(k==0)
- {while(i==1)
- {j++;
- if (j<10)
- {
- tj[2]=j+'0';
- tj[3]='\0';
- }
- else
- {
- tj[2]=j/10+'0';
- tj[3]=j%10+'0';
- tj[4]='\0';
- }
- strcat(tj,".txt");
- if((fq=fopen(tj,"r"))==NULL) i=0;
- fclose(fq);
- } /*end while*/
- j--;
- return(j);
- }
- else if(k==1)
- {i=1;j=0;
- while(i==1)
- {j++;
- if (j<10)
- {
- tj[2]=j+'0';
- tj[3]='\0';
- }
- else
- {
- tj[2]=j/10+'0';
- tj[3]=j%10+'0';
- tj[4]='\0';
- }
- strcat(tj,".txt");
- if((fq=fopen(tj,"r"))==NULL) i=0;
- else{if(strncmp(s,"li",2)==0)system("del li*.* > oztom");else
- if(strncmp(s,"lp",2)==0)system("del lp*.* > oztom");else
- if(strncmp(s,"lf",2)==0)system("del lf*.* > oztom");else
- if(strncmp(s,"lm",2)==0)system("del lm*.* > oztom");
- }
- } /*end while*/
- }
- }
-
- /*-----------------------------CLEAR SCREEN---------------------------------*/
- /**
- cls(S_X,S_Y,E_X,E_Y,attr)
- int S_X,S_Y,E_X,E_Y,attr;
- {
- _AH=(unsigned char)6;
- _AL=(unsigned char)0;
- _BH=(unsigned char)attr;
- _CH=(unsigned char)S_X;
- _CL=(unsigned char)S_Y;
- _DH=(unsigned char)E_X;
- _DL=(unsigned char)E_Y;
- geninterrupt(0x10);
- }
- **/
- /*----------------------READ A CHARACTER FROM KEYBOARD----------------*/
- /**
- get_key()
- {
- union REGS r;
- r.h.ah=0;
- int86(0x16,&r,&r);
- return(r.x.ax);
- }
- **/
- /*------------------------END OF GET_KEY() FUNCTION-------------------*/
- /*----------------------------CURSOR POSITION-------------------------------*/
- /**
- gotoxy(int row,int col)
- {
- _AH=(unsigned char)2;
- _BH=(unsigned char)0;
- _DH=(unsigned char)row-1;
- _DL=(unsigned char)col-1;
- geninterrupt(0x10);
- }
- **/
- /*-----------------------------JUSTFY THE TAB-----------------------------*/
- /**
- justfy(trow,tcol,scr)
- int trow,tcol;
- char scr[20][80];
- {
- int i;
- for(i=0;i<11;i++)
- if((scr[trow][tcol]==table[i][0])&&(scr[trow][tcol+1]==table[i][1]))
- return(i);
- return(99);
- }
- **/
- /*--------------------------------END OF JUSTFY---------------------------*/
- /*-------------------------JUSTFY IF A CHARACTER IS CHINESE--------------*/
- /**readc(int row,int col)
- {
- _AH = (unsigned char) 2;
- _BH = (unsigned char) 0;
- _DH = (unsigned char) row;
- _DL = (unsigned char) col;
- geninterrupt(0x10);
- _AH = (unsigned char) 8;
- geninterrupt(0x10);
- return(_AL);
- } **/
- /*----------------------------SAVE DEFINE OF SCREEN---------------------------*/
- savedef(sele)
- char *sele;/*5.15*/
- {
-
- char um[3];
- FILE *fp,*dp;
- int i,j,k,l,m,n,no,p,row,col;
- struct BASE *midbase;
- char *buff,db[10],fd[10],ty,textname[30],pg[4];
- um[2]='\0';
- strcat(sele,"scr");
- itoa(n1,um,10);
- strcat(sele,um);
- strcat(sele,".prg");
- fp=fopen(sele,"w");
- buff=(char *)malloc(60);
- /* for(i=0;i<=cc;i++)*/
- for (i=0,myscr=first;myscr!=NULL;i++)
- { pr("set color to w+/b\nclear\n");
- /** for(k=1;k<=24;k++)
- {if(myscr->scr[k][0]!='\0')
- {fprintf(fp,"@%d,0 say '",k);
- for(j=0;j<80;j++)
- { if((j==40)||(j==79)){fprintf(fp,"'+'");}
- if(myscr->scr[k][j]!='\0')
- { fprintf(fp,"%c",myscr->scr[k][j]);}
-
-
-
- }
- fprintf(fp,"'\n");
- }
- } **/
-
-
- for(j=1;j<24;j++)
- for(k=1;k<80;k++)
- if(myscr->scr[j][k]!='\0'&&myscr->scr[j][k]!='*'&&myscr->scr[j][k-1]=='\0')
- {
- buff = &myscr->scr[j][k] ;
- fprintf(fp,"@%d,%d say '%s'\n",j,k,buff);
- }
-
- strcpy(textname,"txt");
- itoa(i+1,pg,10);
- strcat(textname,pg);
- strcat(textname,".txt");
- /** dp=fopen("scrfff.txt","r");**/
- dp=fopen(textname,"r");
- while(fgets(buff,58,dp))
- {
- m=1;
- p=0;
- while(buff[m]!='#')
- p=p*10+buff[m++]-'0';
- if(p!=i)
- continue;
- m++;
- row=0;
- while(buff[m]!='#')
- row=row*10+buff[m++]-'0';
- m++;
- col=0;
- while(buff[m]!='#')
- col=col*10+buff[m++]-'0';
- m++;
- no=0;
- while(buff[m]!='#')
- no=no*10+buff[m++]-'0';
- m++;
- n=0;
- while(buff[m]!='#')
- db[n++]=buff[m++];
- db[n]='\0';
- m++;
- n=0;
- while(buff[m]!='#')
- fd[n++]=buff[m++];
- fd[n]='\0';
- fprintf(fp,"select %s\n",db);
- fprintf(fp,"@%d,%d say %s\n",row,col,fd);
- if (cod==1)
- {if (fopen("codep.prg","r")!=NULL)
- {fprintf(fp,"if TYPE('%s')='C'\n",fd);
- fprintf(fp," do codep with %d,%d,'%s',%s,'%s'\nendif\n",row,col,\
- fd,fd,db);}
- }
- }
- fclose(dp);
- /* fprintf(fp,"@24,15 say \"\"\n");
- fprintf(fp,"wait\n"); */ /*5.17 wait*/
- /* if(i!=cc)*/
- if (myscr->next!=NULL)
- {
- pr("cp=' '\n");
- pr("@24,0 say '░┤ ╚╬ ╥Γ ╝ⁿ ┐┤ ╧┬ ╥│ ' get cp\n");
- pr("read\n");
-
- }
- myscr=myscr->next;
- }
- pr("set color to w+/b\n@24,0 clear\nset color to w+/b\nch=' '\n");
- pr("do while ch<>'Y'.and.ch<>'y' .and. ch<>'N'.and.ch<>'n'\n@24,5 say '╩╟╖±╝╠╨°▓Θ╤» ?' get ch\n");
- pr("read\nenddo\nif ch='Y'.or.ch='y'\nw=.t.\nww=.t.\nelse\n");
- pr("w=.f.\nww=.f.\nendif\n");
- pr("sele 1\nreturn\n"); fclose(fp);
- for (myscr=first->next;first!=NULL;)
- {
- free(first);
- first=myscr;
- myscr=myscr->next;
- }
- }
- /*-----------------------------HLINE FUNCTION-------------------------*/
-
- /*-----------------------------DHLINE FUNCTION---------------------------*/
- /**
- dhline(crow,ccol,scr)
- int crow[2],ccol[2];
- char scr[20][80];
- {
- int tcol,trow,just;
- tcol=ccol[0];
- trow=crow[0];
- if(scr[trow][tcol]!='\0')
- {
- just=justfy(trow,tcol,scr);
- switch(just){
- case 2:
- scr[trow][tcol]=scr[trow][tcol+1]='\0';
- prow=trow;pcol=tcol;attr=0|0;
- print("%s"," ");attr=0|30;
- tcol+=2;
- goto again;
- case 3:
- prow=trow;pcol=tcol;
- print("%s","⌐º");
- tcol+=2;
- goto again;
- case 6:
- prow=trow;pcol=tcol;
- print("%s","⌐╧");
- scr[trow][tcol]=table[10][0];
- scr[trow][tcol+1]=table[10][1];
- tcol+=2;
- goto again;
- case 0:
- case 1:
- case 4:
- case 5:
- case 7:
- case 8:
- case 9:
- case 10:
- prow=trow;pcol=tcol;
- print("%s","⌐º");
- scr[trow][tcol]=table[3][0];
- scr[trow][tcol+1]=table[3][1];tcol+=2;
- goto again;
- }
- }
- again: if(tcol!=ccol[1])
- {
- if(scr[trow][tcol]=='\0')
- {
- prow=trow;pcol=tcol;attr=0|0;
- print("%s"," ");attr=0|30;
- tcol+=2;
- goto again;
- }
- else
- {
- just=justfy(trow,tcol,scr);
- switch(just){
- case 0:
- case 1:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- case 10:
- prow=trow;pcol=tcol;
- print("%s","⌐º");
- scr[trow][tcol]=table[3][0];
- scr[trow][tcol+1]=table[3][1];
- tcol+=2;
- goto again;
- case 2:
- if(readc(trow-1,tcol-1)>128&&justfy(trow,tcol,myscr)==99)
- {
- tcol+=2;
- goto again;
- }
- prow=trow;pcol=tcol;attr=0|0;
- print("%s"," ");attr=0|30;
- scr[trow][tcol]=scr[trow][tcol+1]='\0';
- tcol+=2;
- goto again;
- case 3:
- tcol+=2;
- goto again;
- default:
- tcol+=2;
- goto again;
- }
- }
- }
- else
- {
- if(scr[trow][tcol]!='\0')
- {
- just=justfy(trow,tcol,scr);
- switch(just){
- case 0:
- case 1:
- case 4:
- case 5:
- case 7:
- case 8:
- case 9:
- case 10:
- prow=trow;pcol=tcol;
- print("%s","⌐º");
- scr[trow][tcol]=table[3][0];
- scr[trow][tcol+1]=table[3][1];
- tcol+=2;
- break;
- case 2:
- prow=trow;pcol=tcol;attr=0|0;
- print("%s"," "); attr=0|30;
- scr[trow][tcol]=scr[trow][tcol+1]='\0';
- tcol+=2;
- break;
- case 3:
- tcol+=2;
- break;
- case 6:
- prow=trow;pcol=tcol;
- print("%s","⌐╟");
- scr[trow][tcol]=table[9][0];
- scr[trow][tcol+1]=table[9][1];
- tcol+=2;
- break;
- }
- }
- else
- {
- prow=trow;pcol=tcol;attr=0|0;
- print("%s"," ");attr=0|30;
- }
- }
- }
-
- **/
- /*------------------------END OF DHLINE FUNCTION---------------------------*/
-
- /*-----------------------------DVLINE FUNCTION--------------------------*/
- /**
- dvline(crow,ccol,scr)
- int crow[2],ccol[2];
- char scr[20][80];
- {
- int trow,tcol,just;
- trow=crow[0];tcol=ccol[0];
- if(scr[trow][tcol]!='\0')
- {
- just=justfy(trow,tcol,scr);
- switch(just){
- case 3:
- scr[trow][tcol]=scr[trow][tcol+1]='\0';
- prow=trow;pcol=tcol;attr=0|0;
- print("%s"," ");attr=0|30;
- trow++;
- goto again;
- case 2:
- prow=trow;pcol=tcol;
- print("%s","⌐Ñ");
- trow++;
- goto again;
- case 6:
- prow=trow;pcol=tcol;
- print("%s","⌐▀");
- scr[trow][tcol]=table[8][0];
- scr[trow][tcol+1]=table[8][1];
- trow++;
- goto again;
- case 0:
- case 1:
- case 4:
- case 5:
- case 7:
- case 8:
- case 9:
- case 10:
- prow=trow;pcol=tcol;
- print("%s","⌐Ñ");
- scr[trow][tcol]=table[2][0];
- scr[trow][tcol+1]=table[2][1];trow++;
- goto again;
- }
- }
- again: if(trow!=crow[1])
- {
- if(scr[trow][tcol]=='\0')
- {
- prow=trow;pcol=tcol;attr=0|0;
- print("%s"," "); attr=0|30;
- trow++;
- goto again;
- }
- else
- {
- just=justfy(trow,tcol,scr);
- switch(just){
- case 0:
- case 1:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- case 10:
- prow=trow;pcol=tcol;
- print("%s","⌐Ñ");
- scr[trow][tcol]=table[2][0];
- scr[trow][tcol+1]=table[2][1];
- trow++;
- goto again;
- case 3:
- prow=trow;pcol=tcol;attr=0|0;
- print("%s"," ");attr=0|30;
- scr[trow][tcol]=scr[trow][tcol+1]='\0';
- trow++;
- goto again;
- case 2:
- trow++;
- goto again;
- default:
- trow++;
- goto again;
- }
- }
- }
- else
- {
- if(scr[trow][tcol]!='\0')
- {
- just=justfy(trow,tcol,scr);
- switch(just){
- case 0:
- case 1:
- case 4:
- case 5:
- case 7:
- case 8:
- case 9:
- case 10:
- prow=trow;pcol=tcol;
- print("%s","⌐Ñ");
- scr[trow][tcol]=table[2][0];
- scr[trow][tcol+1]=table[2][1];
- trow++;
- break;
- case 3:
- prow=trow;pcol=tcol;attr=0|0;
- print("%s"," ");attr=0|30;
- scr[trow][tcol]=scr[trow][tcol+1]='\0';
- trow++;
- break;
- case 2:
- trow++;
- break;
- case 6:
- prow=trow;pcol=tcol;
- print("%s","⌐╫");
- scr[trow][tcol]=table[7][0];
- scr[trow][tcol+1]=table[7][1];
- trow++;
- break;
- }
- }
- else
- {prow=trow;pcol=tcol;attr=0|0;
- print("%s"," ");attr=0|30;
- }
- }
- }
- **/
- /*--------------------------END OF DVLINE FUNCTION-------------------------*/
- /*================================change============================*/
- int change(u,d,l,r)
- int u,d,l,r;
- {
- return(u*8+d*4+l*2+r);
- }
-
- /*=========================gframe============================*/
- gframe(startx,starty,endx,endy,sss,color)
- int startx,starty;
- int endx,endy;
- int sss;
- int color;
- {
- static char dd[3][6][3]={
- "⌐Ñ","⌐º","⌐│","⌐╖","⌐╗","⌐┐",
- "⌐ñ","⌐ª","⌐░","⌐┤","⌐╕","⌐╝" ,
- " "," "," "," "," "," "
- };
- int row,col;
- char *s;
- clear(6,0,startx,starty,endx,endy);
- cursor(startx,starty);
- color_puts(dd[sss][2],color);
- for(col=starty+2; col<endy; col+=2){
- cursor(startx,col);
- color_puts(dd[sss][0],color);
- }
- cursor(startx,endy);
- color_puts(dd[sss][3],color);
-
- for(row=startx+1; row<endx; ++row){
- cursor(row,starty);
- color_puts(dd[sss][1],color);
- cursor(row,endy);
- color_puts(dd[sss][1],color);
- cursor(row,starty+2);
- }
- cursor(endx,starty);
- color_puts(dd[sss][4],color);
-
- for(col=starty+2; col<endy; ++col,++col){
- cursor(endx,col);
- color_puts(dd[sss][0],color);
- }
- cursor(endx,endy);
- color_puts(dd[sss][5],color);
- return;
- }
- getchb()
- { int t,m;
- union REGS regs;
- int page,limline,step;
- 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);
- }
-
-
- /*----------------------------------------------------------------*/
- /* ╔· │╔ ▓Θ ╤» ╜ß ╣√ ┐Γ ╡─ ┐Γ ╜ß ╣╣ ╩² ╛▌ ╬─ ╝■ */
- /*----------------------------------------------------------------*/
- cre(m,str)
- int m;
- char *str;
- { FILE *sp;
- int n,i,j,k;
- char *st;
- struct DBF *p;
- st=(char *)malloc(10*sizeof(char));
- strcpy(st,str);
- n=m+1;
- if (n<10)
- {
- st[2]=n+'0';
- st[3]='\0';
- }
- else
- {
- st[2]=n/10+'0';
- st[3]=n%10+'0';
- st[4]='\0';
- }
- strcat(st,".txt");
- sp=fopen(st,"w");
- for (i=0;ldb[i].dbs!=NULL;i++)
- { p=ldb[i].dbs;
- m=0;
- n=0;
- while (n<p->ctc)
- { if (MAR[i][m]==1)
- fprintf(sp,"#%s#,#%c#,%d,%d\n",p->db[n].field,p->db[n].type,p->db[n].len,p->db[n].dec);
- n++;m++;
- if (n==p->ctc&&p->next!=NULL) { n=0; p=p->next; }
- }
- }
- fclose(sp);
- return(0);
- }
- /*-------------------------------------------------*/
- /* ╔· │╔ ╙ª ╙├ │╠ ╨≥ ╧╘ ╩╛ ▒Σ ┴┐ */
- /*-------------------------------------------------*/
- cre1(m,sp)
- int m;
- FILE *sp;
- { int i,j,n,k;
- struct DBF *p;
- n='A';
- fprintf(sp,"f%d='",m+1);
- for (i=0;ldb[i].dbs!=NULL;i++)
- { p=ldb[i].dbs;
- j=0;
- k=0;
- while (k<p->ctc)
- { if (MAR[i][j++]) fprintf(sp,"%c",n);
- k++;
- if (k==p->ctc&&p->next!=NULL) { k=0; p=p->next; }
- }
- n++;
- }
- fprintf(sp,"'\n");
- }
- /*-------------------------------------------------------------*/
- /* ╔· │╔ ▓Θ ╤» ╧ε ╧╘ ╩╛ ▓╦ ╡Ñ ╡─ ╩² ╛▌ ╬─ ╝■ */
- /*-------------------------------------------------------------*/
- cre2(name,n,op,dd)
- int n;
- char *name;
- FILE *op;
- int dd;
- { int i=0;
- if (ldb[1].dbs!=NULL)
- { fprintf(op,"#%d#,#%d#,#%s#,%d",dd,linkflag,name,n);
- while (i<6) fprintf(op,",#%s#",ldb[i++].name);
- i=0;
- while (i<5) fprintf(op,",#%s#",link[i++]);
- }
- else fprintf(op,"#%d#,##,#%s#,%d,#%s#",dd,ldb[0].mean,n,ldb[0].name);
- fprintf(op,"\n");
- }
- inc(i)
- int *i;
- { int n=0,j=0;
- clear(6,0,22,2,23,76);
- if (ldb[1].dbs!=NULL)
- { cursor(22,10);
- color_puts("╟δ╤í╘±▓┘╫≈╫╓╢╬ (íⁿ/í²: ╤í┐Γ, PgUp/PgDn: ╖¡╞┴): ",10);
- }
- else
- { cursor(22,20);
- color_puts("╟δ╤í╘±▓┘╫≈╫╓╢╬(PgUp/PgDn: ╖¡╞┴): ",10);
- }
- 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;j--;}
- else if (*i<5&&ldb[*i+1].dbs!=NULL) { (*i)++; rd=ldb[*i].dbs; wd=ldb[*i].dbs;j++;}
- 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) {MAR[j][COUNT-1]=1;return(COUNT);}
- else {MAR[j][n%COUNT-1]=1;return(n%COUNT);}
- }
- /*------------------------------------------------------------------------*/
- print1(int attr,char *format,...)
- {
- va_list arg;
- int row,col;
- char print_str[254],*string;
- va_start(arg,format);
- vsprintf(print_str,format,arg);
- string=print_str;
- _AH =(unsigned char)3;
- _BH =(unsigned char)0;
- geninterrupt(0x10);
- _DL++;
- _SI =(unsigned int) string;
- _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);
- }
- }
- read_string(string,length)
- char *string;
- int length;
- {
- char middstr[41];
- int ctc,charact;
- int x,y;
- for (ctc=0;ctc<20;ctc++) middstr[ctc]='\0';
- ctc=0;
- while (ctc<length-1)
- {
- charact=getchb();
- if (charact==13) break;
- if ((charact==8)&&(ctc>0)) {
- now_cursor(&x,&y);
- go_to(x+1,y); printf(" ");
- go_to(x+1,y); middstr[--ctc]='\0';
- continue;
- }
- if (charact<=30 || charact>=128) continue;
- printf("%c",charact);
- middstr[ctc++]=charact;
- }
- if (strcmp(middstr,NULL)!=0)
- strcpy(string,middstr);
- return(0);
- }
- /*----------------------------CURSOR POSITION-------------------------------*/
- go_to(int row,int col)
- {
- _AH=(unsigned char)2;
- _BH=(unsigned char)0;
- _DH=(unsigned char)row-1;
- _DL=(unsigned char)col-1;
- geninterrupt(0x10);
- }
- /*---------------------------------------------------------------------------------*/
- frame(s_r,s_c,e_r,e_c,attr)
- int s_r,s_c,e_r,e_c,attr;
- {
- int i,j;
- char line[80];
- union REGS r;
- r.h.ah=6;
- r.h.al=0;
- r.h.bh=attr;
- r.h.ch=s_r-1;
- r.h.cl=s_c-1;
- r.h.dh=e_r-1;
- r.h.dl=e_c-1;
- int86(0x10,&r,&r);
- strcpy(line,"⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ");
- prt(s_r-1,s_c-1,attr,"⌐│");
- prt(s_r-1,s_c+1,attr,"%-.*s",e_c-s_c-2,line);
- prt(s_r-1,e_c-1,attr,"⌐╖");
- for(i=s_r+1;i<e_r;i++)
- {
- prt(i-1,s_c-1,attr,"⌐º");
- prt(i-1,e_c-1,attr,"⌐º");
- }
- prt(e_r-1,s_c-1,attr,"⌐╗");
- prt(e_r-1,s_c+1,attr,"%-.*s",e_c-s_c-2,line);
- prt(e_r-1,e_c-1,attr,"⌐┐");
- }
-
- savedef_xits(sele)
- char *sele;/*5.15*/
- {
-
- char um[3];
- FILE *fp,*dp;
- int i,j,k,l,m,n,no,p,row,col,code;
- struct BASE *midbase;
- char *buff,db[10],fd[10],ty;
- um[2]='\0';
- if ((fp=fopen("code.dbf","r"))!=NULL) code=1;
- else code=0;
- fclose(fp);
- strcat(sele,"scr");
- itoa(n1,um,10);
- strcat(sele,um);
- strcat(sele,".prg");
- fp=fopen(sele,"w");
- fprintf(fp,"set color to w+/b\nclea\n");
- row = 3; col = 12;
- i=0;
- while (ldb[i].dbs!=NULL)
- { wd=ldb[i].dbs;
- k=0;
- j=0;
- while (k<wd->ctc&&j<128)
- { if (MAR[i][j]==1)
- {
- m=11+wd->db[k].len;
- if (col + m >70) {col=12; row=row+2;}
- if (row > 21)
- {
- fprintf(fp,"@24,0 clea\nwait\nclea\n");
- row=3; col=12;
- }
- if (col + m <=70)
- {
- fprintf(fp,"@%d,%d say '%-10s:'\n@%d,%d say %c->%s\n",row,col,wd->db[k].field,row,col+11,i+65,wd->db[k].field);
- if (code && wd->db[k].type=='C') fprintf(fp,"do codep with %d,%d,'%s',%c->%-s,'%c'\n",row,col+11,wd->db[k].field,i+65,wd->db[k].field,i+65);
- col=col+m+2;
- }
- else
- {
- fprintf(fp,"@%d,%d say '%-10s:'\n",row,col,wd->db[k].field);
- n=1;
- while ((n-1)*47 < m-11)
- {
- fprintf(fp,"@%d,%d say substr(%c->%s,%d,47)\n",row,col+11,i+65,wd->db[k].field,(n-1)*47+1);
- row++; n++;
- }
- row++;
- }
- }
- j++; k++;
- if (k==wd->ctc&&wd->next!=NULL) { k=0; wd=wd->next; }
- }
- i++;
- }
- /* if(i!=cc)
- {
- pr("cp=' '\n");
- pr("@24,0 say '░┤ ╚╬ ╥Γ ╝ⁿ ┐┤ ╧┬ ╥│ ' get cp\n");
- pr("read\n");
-
- }*/
- fprintf(fp,"set color to w+/b\n@24,0 clear\nset color to w+/b\nch=' '\n");
- fprintf(fp,"do while ch<>'Y'.and.ch<>'y' .and. ch<>'N'.and.ch<>'n'\n@24,5 say '╩╟╖±╝╠╨°▓Θ╤» ?' get ch\n");
- fprintf(fp,"read\nenddo\nif ch='Y'.or.ch='y'\nw=.t.\nww=.t.\nelse\n");
- fprintf(fp,"w=.f.\nww=.f.\nendif\n");
- fprintf(fp,"sele 1\nreturn\n"); fclose(fp);
- }
- /*-------------------------------------*/
- /* ╢┴ ┐Γ ╙╨ ╣╪ ╨┼ ╧ó */
- /*-------------------------------------*/
- getbase(path)
- char *path;
- { FILE *fp;
- char c[2],key[4][11],c1[2],pathbak[30],buff[80];
- int i=0;
- fp=fopen("db.txt","r");
- getmemb();
- rb=newb;
- wb=newb;
- while (fgets(buff,80,fp)!=NULL)
- { if (i%10==0&&i!=0)
- { getmemb();
- i=0;
- wb->next=newb;
- newb->last=wb;
- wb=newb;
- }
- sscanf(buff,"#%[^#]#,#%[^#]#,#%[^#]#,#%[^#]#,#%[^#]#,#%[^#]#,#%[^#]#,#%[^#]#,#%[^#]#\n",\
- wb->base[i].mean,key[0],key[1],key[2],key[3],wb->base[i].name,c,c1,pathbak);
- /* getmemd();
- wd=newd;
- wb->base[i].dbs=newd;
- getcontent(path,wb->base[i].name);*/
- i++;
- wb->ctc++;
- }
- fclose(fp);
- rd=rb->base[0].dbs;
- wb=rb;
- wd=rd;
- }
- /*----------------------------------------*/
- /* ╢┴ ╚δ ┐Γ ╜ß ╣╣ ╨┼ ╧ó */
- /*----------------------------------------*/
- getcontent(path,dbf)
- char *path,*dbf;
- { FILE *fp;
- char *s,buff[80];
- int i=0;
- s=(char *)malloc(30*sizeof(char));
- strcpy(s,path);
- strcat(s,dbf);
- strcat(s,".txt");
- i=0;
- fp=fopen(s,"r");
- while (fgets(buff,80,fp)!=NULL)
- { if (wd->ctc%COUNT==0&&wd->ctc!=0)
- { i=0;
- getmemd();
- wd->next=newd;
- newd->last=wd;
- wd=newd;
- }
- sscanf(buff,"#%[^#]#,#%c#,%d,%d\n",wd->db[i].field,&wd->db[i].type,&wd->db[i].len,&wd->db[i].dec);
- i++;
- wd->ctc++;
- }
- fclose(fp);
- }
- /*-------------------------------------------------*/
- /* ┼╨ ╢╧ ─ú ┐Θ ╩╟ ╖± ╥╤ ╔· │╔ ╣² */
- /*-------------------------------------------------*/
- int exist(s,t)
- char *s,*t;
- { FILE *fp;
- char c;
- if ((fp=fopen(t,"r"))!=NULL)
- {cls(1,1,25,80,48|33);
- cls(11,20,16,63,0|1);
- cls(10,19,15,61,0|30);
- frame(9,18,15,60,0|30);
- prt(6,15,48|33,"***** %s ─ú┐Θ╣²╚Ñ╥╤╛¡╔·│╔╣² *****",s);
- prt(10,25,0|30,"1. ╓╪╨┬╔·│╔");
- prt(11,25,0|30,"2. ╠φ╝╙╔·│╔ ");
- prt(12,25,0|30,"3. ▒ú│╓╘¡╙╨ ");
- prt(19,28,48|33," ╟δ╤í╘±(1--3): ");
- while ((c=getchar())!='1'&&c!='2'&&c!='3') ;
- }
- else fclose(fp);
- cod=1;/*add cod with scr.c code*/
- if(c=='1') return(1);
- if(c=='2') return(2);
- if(c=='3') return(3);
- }
- /*----------------------------------------------*/
- /* ╧╘ ╩╛ ╧╡ ═│ ╩² ╛▌ ┐Γ ▓╦ ╡Ñ */
- /*----------------------------------------------*/
- disp()
- { int i,x,y,n=0;
- struct BASE *p;
- p=rb;
- while (p!=wb) { n+=p->ctc; p=p->next; }
- cls(1,1,25,80,48|33);
- prt(0,1,0|30,"%s",explain);
- prt(0,44,48|33,"F1-Help Esc-Exit ╗╪│╡: ═╦│÷▒╛─ú┐Θ");
- prt(2,18,48|33,"▒╛╧╡═│╓╨╡─╚½▓┐╩²╛▌┐Γ╚τ╧┬");
- cls(7,4,12,79,0|1);
- cls(6,3,11,77,0|30);
- frame(5,2,11,76,0|30);
- x=5;
- y=4;
- for (i=0;i<wb->ctc;i++)
- { cursor(x,y);
- prt(x,y,0|30,"%2d - %-30s",n+i+1,wb->base[i].mean);
- y+=36;
- /** y+=26;**/
- if (y+10>80)
- { x++;
- /** y=1;**/
- y=4;
- }
- }
- }
- /*----------------------------------------*/
- /* ╧╘ ╩╛ ┐Γ ╜ß ╣╣ ▓╦ ╡Ñ */
- /*----------------------------------------*/
- disp_base(m)
- int m;
- { int row,col,i,n=0;
- struct DBF *p;
- /* p=wb->base[m].dbs;*/
- p=ldb[m].dbs;
- while (p!=wd) { n+=p->ctc; p=p->next; }
- cls(1,1,17,78,48|33);
- cls(6,6,17,73,0|1);
- cls(5,5,16,71,0|30);
- frame(4,4,16,70,0|30);
- prt(0,1,0|30,"%s",explain);
- prt(1,10,48|33,"┐Γ # %s # ╓╨║¼╙╨╥╘╧┬╫╓╢╬",ldb[m].mean);
- 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;
- }
- }
- }
- /*-------------------------------*/
- /* ┤░ ┐┌ ╠ß ╩╛ */
- /*-------------------------------*/
- helplo()
- { char c;
- cursor(11,5);
- color_puts("⌐│⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╖\
- \n⌐º ─·┐╔╤í╘±╔╧╩÷┐Γ, ╜°╨╨╡Ñ┐Γ╗≥╢α┐Γ▓┘╫≈. ╚⌠╥¬╔·│╔╢╘╢α┐Γ▓Θ╤», ╘≥╕≈┐Γ╝Σ⌐º\
- \n⌐º▒╪╨δ╙╨╧α═¼╫╓╢╬, ╟╥╧α═¼╫╓╢╬╘┌▒╗┴¼╜╙┐Γ╓╨╙ª╩╟╣╪╝ⁿ╫╓. ⌐º\
- \n⌐º ╘┌╤í┐Γ╩▒, ╚τ╣√─·╓╗╤í╘±┴╦╥╗╕÷┐Γ, ╘≥▒φ╩╛╢╘╡Ñ┐Γ▓┘╫≈; ╚τ╣√─·╤í╘±┴╦┴╜⌐º\
- \n⌐º╕÷╥╘╔╧╡─┐Γ, ╘≥▒φ╩╛╢╘╢α┐Γ▓┘╫≈, ╧╡═│╜½╫╘╢»╕∙╛▌─·╤í╘±╡─╦│╨≥░╤╕≈┐Γ┴¼╜╙╞≡⌐º\
- \n⌐º└┤. ⌐º\
- \n⌐º ╫ó╥Γ : ┐╔┴¼╜╙╡─┐Γ╫ε╢α─▄╙╨6╕÷ ⌐º\
- \n⌐╗⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐┐",15);
- color_puts(" ",10);
- go_on();
- clear(6,0,11,0,18,79);
- cursor(20,50);
- }
- /*-------------------------------------*/
- /* ┤φ ╬≤ ╨┼ ╧ó ╠ß ╩╛ */
- /*-------------------------------------*/
- error()
- { cursor(23,15);
- prt(23,15,48|33,"###### ╩Σ╚δ┤φ╬≤! ╟δ╓╪╨┬╘┘╩Σ ######");
- dela();
- cursor(23,15);
- prt(23,15,48|33," ");
- }
- /*----------------------------------------*/
- /* ╢¿ ╥σ ▓Θ ╤» ▓┘ ╫≈ ┐Γ */
- /*----------------------------------------*/
- getroad(l)
- int l;
- { int i,n,x,y,col,j,cir,min=1,max,m,dbctc;
- system("cls");
- wb=rb;
- disp();
- prt(19,20,48|33,"╟δ╢¿╥σ╡┌ %d ╕÷▓Θ╤»▓┘╫≈┐Γ",l+1);
- prt(20,5,48|33,"╩Σ╚δ┐Γ╡─┤·║┼(PgUp/PgDn: ╖¡╞┴, 0: ╜ß╩°) -- A: B: C: D: E: F: ");
- for (i=0;i<6;i++) {ldb[i].dbs=NULL; strcpy(ldb[i].name,"");}
- max=wb->ctc;
- i=0;
- while ((n=getn(min,max,20,49))!=0)
- {
- /**/ ss0[i]=n;
- if (n=='H')
- { helplo();
- while ((n=getn(min,max,20,49))=='H') helplo();
- if (n==0) return(0);
- }
- if (n=='U') {
- if (wb->last!=NULL)
- { max-=wb->ctc; wb=wb->last; min-=10; disp(); }
- prt(19,20,48|33,"╟δ╢¿╥σ╡┌ %d ╕÷▓Θ╤»▓┘╫≈┐Γ",l+1);
- prt(20,5,48|33,"╩Σ╚δ┐Γ╡─┤·║┼(PgUp/PgDn: ╖¡╞┴, 0: ╜ß╩°) -- A: B: C: D: E: F: ");
- continue;
- }
- if (n=='D') {
- if (wb->next!=NULL)
- { min+=10; wb=wb->next; max+=wb->ctc; disp(); }
- prt(19,20,48|33,"╟δ╢¿╥σ╡┌ %d ╕÷▓Θ╤»▓┘╫≈┐Γ",l+1);
- prt(20,5,48|33,"╩Σ╚δ┐Γ╡─┤·║┼(PgUp/PgDn: ╖¡╞┴, 0: ╜ß╩°) -- A: B: C: D: E: F: ");
- continue;
- }
- y=((n-1)%2)*36+3;
- x=(n%10-1)/2+5;
- if (n%10==0) x=((n-1)%10-1)/2+5;
- prt(x,y,0|30,"*");
- if (n%10==0) m=9;
- else m=n%10-1;
- ldb[i]=wb->base[m];
- rd=ldb[i].dbs;
- wd=rd;
- i++;
- col=54;
- while ((n=getn(min,max,20,col))!=0)
- { ss0[i]=n;
- if (n=='H') { helplo(); continue; }
- if (n=='U') {
- if (wb->last!=NULL)
- { max-=wb->ctc; wb=wb->last; min-=10; disp(); }
- prt(19,20,48|33,"╟δ╢¿╥σ╡┌ %d ╕÷▓Θ╤»▓┘╫≈┐Γ",l+1);
- prt(20,5,48|33,"╩Σ╚δ┐Γ╡─┤·║┼(PgUp/PgDn: ╖¡╞┴, 0: ╜ß╩°) -- A: B: C: D: E: F: ");
- continue;
- }
- if (n=='D') {
- if (wb->next!=NULL)
- { min+=10; wb=wb->next; max+=wb->ctc; disp(); }
- prt(19,20,48|33,"╟δ╢¿╥σ╡┌ %d ╕÷▓Θ╤»▓┘╫≈┐Γ",l+1);
- prt(20,5,48|33,"╩Σ╚δ┐Γ╡─┤·║┼(PgUp/PgDn: ╖¡╞┴, 0: ╜ß╩°) -- A: B: C: D: E: F: ");
- continue;
- }
- if (n%10==0) m=9;
- else m=n%10-1;
- for (j=0;j<i;j++)
- if (strcmp(ldb[j].mean,wb->base[m].mean)==0) { cir=1; break; }
- else cir=0;
- if (cir) { error();
- continue;
- }
- if (n!=0)
- {
-
-
- y=((n-1)%2)*36+3;
- x=(n%10-1)/2+5;
- if (n%10==0) x=((n-1)%10-1)/2+5;
- prt(x,y,0|30,"*");
- col+=5;
- ldb[i]=wb->base[m];
- i++;
- if (i==6) break;
- }
- }
- /* check();*/
- for (dbctc=0;strcmp(ldb[dbctc].name,"")!=0;dbctc++)
- {
- getmemd();
- wd=newd;
- ldb[dbctc].dbs=newd;
- getcontent(PATH,ldb[dbctc].name);
- }
- wb=rb;
-
- if (i==1) return(i);
- cursor(22,15);
- prt(22,15,48|33,"╟δ╤í╘±╢α┐Γ┴¬╜╙╖╜╩╜(╨╟╨═B/┤«╨═C)");
- bcstart:n=getcc();
- if (n!='B'&&n!='b'&&n!='C'&&n!='c') goto bcstart;
- else linkflag=(n=='b'||n=='B')?0:1;
- return(i);
- }
- wb=rb;
- return(0);
- }
- /*-------------------------------------------------------*/
- /* ▒╚ ╜╧ ┐Γ ╓« ╝Σ ╩╟ ╖± ╙╨ ╧α ═¼ ╫╓ ╢╬ */
- /*-------------------------------------------------------*/
- check()
- { int i,j,k,n;
- struct DBF *p;
- char b[128][11];
- p=ldb[0].dbs;
- i=0;
- j=0;
- while (i<p->ctc)
- { strcpy(b[j++],p->db[i].field);
- i++;
- if (i==p->ctc&&p->next!=NULL) { p=p->next; i=0; }
- }
- k=1;
- while (ldb[k].dbs!=NULL)
- { n=0;
- for (i=0;i<j;i++)
- if (cmp(b[i],ldb[k].dbs)>=0) { strcpy(b[n],b[i]); n++; }
- if (n==0)
- { cursor(23,5);
- color_puts(ldb[0].mean,14|16);
- color_puts(" ║═ ",12);
- color_puts(ldb[k].mean,14|16);
- color_puts(" ╬▐╧α═¼╫╓╢╬, ▓╗─▄╜°╨╨┴¼╜╙, ╟δ╓╪╨┬╢¿╥σ┴¼╜╙┐Γ",12);
- dela();
- color_puts(" ",10);
- repeat=0;
- break;
- }
- if (n<j) j=n;
- k++;
- }
- }
- /*-------------------------------------------------------*/
- /* ▒╚ ╜╧ ╥╗ ╫╓ ╢╬ ╩╟ ╖± ╘┌ ─│ ╥╗ ┐Γ ╓╨ */
- /*-------------------------------------------------------*/
- cmp(str,p)
- char *str;
- struct DBF *p;
- { int i=0,j=0;
- while (i<p->ctc)
- { if (strcmp(str,p->db[i].field)==0) return(j);
- i++;
- j++;
- if (i==p->ctc&&p->next!=NULL) { p=p->next; i=0; }
- }
- return(-1);
- }
- /*-------------------------------------*/
- /* ╢¿ ╥σ ┴¼ ╜╙ ╫╓ ╢╬ */
- /*-------------------------------------*/
- deflink(dname)
- char *dname;
- { int i,c,n,flag,ctcn;
- FILE *fp;
- char ph[30],middst[31];
- strcpy(ph,PATH);
- for (i=0;i<5;i++) strcpy(link[i],"");
- strcat(ph,"NDX.TXT");
- fp=fopen(ph,"a");
- prt(22,15,48|33,"╟δ╢¿╥σ┴¼╜╙┐Γ╡─╩╢▒≡├√(╫ε╢α30╕÷╫╓╖√): ");
- scanf("%30s",dname);
- cls(1,1,25,80,48|33);
- i=0; ctcn=1;
- while (repeat)
- {
- wd=ldb[i].dbs; rd=ldb[i].dbs; flag=1;
- while (flag) {
- prt(16,10,48|33,"╟δ╚╖╢¿╦∙╢¿╥σ╡─┴¼╜╙┐Γ╡─┴¼╜╙╫╓╢╬(PgUp/PgDn: ╖¡╞┴):");
- prt(19,13,48|33,"╫ó╥Γ: ┴¼╜╙╫╓╢╬▒╪╨δ─▄╬¿╥╗╡╪╩╢▒≡╥╗╕÷╝╟┬╝!");
- judge(0);
- c=get(16,60);
- /*i=1;*/
- if (c=='U'||c=='D')
- { judge(c);
- continue;
- }
- /*flag=1;*/
- if (c%COUNT==0) c=COUNT-1;
- else c=c%COUNT-1;
- if (c==39)
- {
- if (strcmp(link[i],"")==0) continue;
- else {flag=0; continue;}
- }
- if (ldb[i].dbs->db[c].type!='C'&&ldb[i].dbs->db[c].type!='D'&&ldb[i].dbs->db[c].type!='N')
- { prt(21,10,48|33,"╟δ╤í╘±╫╓╖√╨═, ╩²╫╓╨═, ╚╒╞┌╨═╡─╫╓╢╬╫≈╬¬┴¼╜╙╫╓╢╬!");
- go_on();
- prt(21,10,48|33," ");
- continue;
- }
- if (ldb[ctcn].dbs!=NULL)
- { if (cmp(ldb[i].dbs->db[c].field,ldb[ctcn].dbs)<0)
- { prt(21,10,48|33,"%s",ldb[ctcn].mean);
- print1(48|33," ▓╗┤µ╘┌ ");
- print1(48|33,"%s",ldb[i].dbs->db[c].field);
- print1(48|33," ╫╓╢╬, ╬▐╖¿┴¼╜╙. ╟δ╓╪╨┬╤í╘±┴¼╜╙╫╓╢╬");
- go_on();
- prt(21,10,48|33," ");
- }
- else {if (strcmp(link[ctcn-1],"")!=0) strcat(link[ctcn-1],"+");
- if (ldb[i].dbs->db[c].type=='D')
- {
- strcpy(middst,NULL); strcat(middst,"DTOC(");
- strcat(middst,ldb[i].dbs->db[c].field); strcat(middst,")");
- }
- if (ldb[i].dbs->db[c].type=='N')
- {
- strcpy(middst,NULL); strcat(middst,"STR(");
- strcat(middst,ldb[i].dbs->db[c].field); strcat(middst,",");
- strcat(middst,"19");strcat(middst,")");
- }
- if (ldb[i].dbs->db[c].type=='C')
- strcpy(middst,ldb[i].dbs->db[c].field);
- strcat(link[ctcn-1],middst);
- }
- }
- }
- if (linkflag==1) {i=ctcn; ctcn++;}
- else {i=0; ctcn++;}
- if (ldb[ctcn].dbs==NULL) break;
- /* if (flag) { strcpy(link,ldb[0].dbs->db[c].field);
- break;
- }*/
- }
- for (i=1;ldb[i].dbs!=NULL;i++) fprintf(fp,"#%s#,#%s#,##,0,0\n",ldb[i].name,link[i-1]);
- fclose(fp);
- wd=rd=ldb[0].dbs;
- }