home *** CD-ROM | disk | FTP | other *** search
Wrap
#include <stdio.h> #include <dos.h> #include <string.h> #include <ctype.h> #define black 0x0 #define blue 0x10 #define green 0x20 #define cyan 0x30 #define red 0x40 #define white 0x70 #define PgUp 18688 #define PgDn 20736 #define UP 18432 #define DOWN 20480 #define LEFT 19200 #define RIGHT 19712 #define Enter 13 #define Home 18176 #define End 20224 #define ESC 27 #define Del 21248 #define Ins 20992 #define F1 15104 #define F2 15360 #define F3 15616 #define F4 15872 #define F5 16128 #define F6 16384 #define F7 16640 #define F8 16896 #define F9 17152 #define F10 17408 typedef struct PPP { /* this is a database's structure */ char field[11]; char type; int length; int dec; struct PPP *last; /* poniter of the last block */ struct PPP *next; /* pointer of the next block */ char sele; char obj; int cla; }FIELD; extern FIELD *p,*p5; typedef struct MM { /*store base name*/ char mean[30]; char dbname[11]; /* the name of the database */ char mainkey[4][11]; /* mainkey of the database */ struct PPP *sstr; /* point to the database's structure */ struct PPP *estr;/* pointer for end of block of base*/ char flag; /*if finish base 0--not finish 1--finish*/ char serve; char path[30]; char sele; int sort; char join; struct MM *last; struct MM *next; }BASE ; extern BASE *root,*root3;/* end*/ extern int basecount,selecount,fselecount,linknum,link[5]; extern char linkfield[5][4][11],workname[30],linktype,lan,insert; extern BASE *root2,*root1,*root4; extern FIELD *p1,*p2,*p4; extern int num[6],use; extern char *title3[]; extern FIELD *NEXT(),*LAST(),*disp_field(); extern FIELD *disp_f(); extern int ob,sub2; extern char file[13],PATH[30]; extern char condition[200],*con[6]; tj_s() { FILE *fp; char tail[4], name[13]; char gsxih[50]; int i,j,k,ll; /*-----------------------------make start-------------------------*/ if(num[5]==0) make_file(5); if((insert!='Y')&&(insert!='y')) r_mean(); strcpy(file,"tj_s"); itoa(num[5],tail,10); strcat(file,tail); if((insert=='n')||(insert=='N')) w_menus(); clear_win(2,3,24,76,6,0,black); gframe(5,2,11,78,0,0|30); print(7,5,6|1,"╢╘╫╓╖√╨═íó╚╒╞┌╨═íó┬▀╝¡╨═╫╓╢╬╙├└█╝╞▓┘╫≈┐Γ╓╨╡─╠µ╗╗┬≡ú┐(Y/N) "); k=getcc(); root2=root; while(root2!=NULL) { if(root2->sele=='Y') { p2=root2->sstr; while(p2!=NULL) { p2->cla=0; p2->obj='N'; p2=p2->next; } } root2=root2->next; } /*---------------------------------make_base dui--------------------------*/ clear_win(2,3,24,76,6,0,black); gframe(5,2,11,78,0,0|30); gframe(14,2,22,78,1,0|30); print(4,32,6|1,"╟δ╤í╢╘╙ª└█╝╞╫╓╢╬"); print(4,5,6|1,"╣▓╙╨<%02d",0); print(4,12,6|1,">╕÷╫╓╢╬▒╗╤í"); print(14,8,0|30,"╨┼╧ó┤░┐┌"); for(;;) { fselecount++; root2=root; /* print(1,5,0|30, "**╤í╜ß╣√┐Γ╫╓╢╬fsdfsf**");*/ while(root2!=NULL) if(root2->sele=='Y') break; else root2=root2->next; if(root2->sele=='Y') { p=root2->sstr; p2=p; p4=p2; p1=disp_field(p2,1); if((ll=sele_field(p2,p1,p4,1))==-1) {fselecount--; continue; } else if(ll==2) break; } root2=root2->next; while(root2!=NULL) if(root2->sele=='Y') break; else root2=root2->next; if(root2->sele=='Y') { p=root2->sstr; p2=p; p4=p2; start2: p1=disp_field(p2,1); if((sele_field(p2,p1,p4,1))==-1) goto start2; } } /*-------------------------------gene promgram---------------------------*/ strcpy(name,file); strcat(name,".prg"); if((fp=fopen(name,"w"))==NULL) { error("don't open file!"); exit(0); } fprintf(fp,"set echo off\nset talk off\nset safe off\n"); if((lan=='Y')||(lan=='y')) fprintf(fp,"set excl off\n"); else fprintf(fp, "set excl on\n"); fprintf(fp,"close all\nsele a\n"); root2=root; while(root2!=NULL) if(root2->sort==10) break; else root2=root2->next; root4=root2; if(root2->join=='Y') fprintf(fp,"if .not.file('%s\\%s.dbf')\nclear\n@12,10 say \"╬─╝■╗╣▓╗┤µ╘┌,─·╙ª╧╚╘╦╨╨▒≡╡─│╠╨≥,▓·╔·┤╦┐Γúí\" \nreturn\nendif\n",root2->path,root2->dbname); fprintf(fp,"use %s\\%s ",root2->path,root2->dbname); if(root2->serve!='Y') fprintf(fp," excl \n"); else fprintf(fp," \n"); /*-----------------------------------lock---------------------------------*/ if(((lan=='y')||(lan=='Y'))&&(root2->serve=='Y')) { fprintf(fp,"do while .T.\ntime=0\ndo while .not.flock().and.time<250\n"); fprintf(fp,"time=time+1\nenddo\nif time<250\n"); } /*-----------------------------endlock------------------------------------*/ fprintf(fp,"copy to tj_sult.dbf\n"); /*-------------------------unlock----------------------------------------*/ if(((lan=='y')||(lan=='Y'))&&(root2->serve=='Y')) { fprintf(fp,"unlock\nexit\nelse\nyes=' '\nclear\n@12,10 say \"╬─╝■╥╤▒╗╞Σ╦√╙├╗º,╝╠╨°╝╙╦°┬≡ú┐(Y/N)\" get yes\n"); fprintf(fp,"read\nclear\nif yes='N'.or.yes='n'\n@15,10 say \"╟δ╣²╥╗╗ß╢∙╘┘╙├\" \nwait\n"); fprintf(fp,"return\nendif\nendif\nenddo\n"); } /*----------------------------end unlock cance---------------------------*/ fprintf(fp,"use tj_sult excl\n"); fprintf(fp,"newn=0\ngo bott\noldn=recno()\nset uniq on \n"); fprintf(fp," index on "); for(i=0;i<link[0];i++) if(i==0) fprintf(fp,"%s",linkfield[0][i]); else fprintf(fp,"+%s",linkfield[0][i]); fprintf(fp," to ll \n"); fprintf(fp,"dele all\nset uniq off\n set index to \n go top\ndo while .not.eof()\n"); fprintf(fp,"if delete()\n newn=newn+1\nendif\nskip\nenddo\nif newn<oldn\n clear\nyes='Y'\nset color to gr+/r\n"); fprintf(fp,"@ 12,10 say \"└█╝╞╜ß╣√┐Γ╡─╣╪╝ⁿ▒φ┤∩╩╜▓╗╬¿╥╗,╔╛│²╢α╙α╡─╝╟┬╝┬≡ú┐(Y/N) \" get yes\nread\nset color to w/ \n"); fprintf(fp,"if yes='y'.or.yes='Y'\ngo top\ndo while .not.eof()\nif.not.delete()\ndele\n"); fprintf(fp,"else\n recall\nendif\nskip\n enddo\npack\n*else\n*recall all\n*close all\n"); fprintf(fp,"*! c:brow c:tj_sult.dbf \n*return\n"); fprintf(fp,"endif\n endif\n recall\nindex on "); for(i=0;i<link[0];i++) if(i==0) fprintf(fp,"%s",linkfield[0][i]); else fprintf(fp,"+%s",linkfield[0][i]); fprintf(fp," to ll\n"); root2=root; while(root2!=NULL) if(root2->sort==1) break; else root2=root2->next; root1=root2; if(root1->join=='Y') fprintf(fp,"if .not.file(%s\\%s.dbf)\nclear\n@12,10 say \"╬─╝■╗╣▓╗┤µ╘┌,─·╙ª╧╚╘╦╨╨▒≡╡─│╠╨≥,▓·╔·┤╦┐Γúí\" \nreturn\nendfi\n",root1->path,root1->dbname); fprintf(fp,"sele 2\nuse %s\\%s\nset relation to ",root1->path,root1->dbname); for(i=0;i<link[0];i++) if(i==0) fprintf(fp,"%s",linkfield[0][i]); else fprintf(fp,"+%s",linkfield[0][i]); fprintf(fp," into A\ngo top\ndo while .not.eof()\nsele 1\nif .not.eof()\n"); p1=root1->sstr; p4=root4->sstr; p2=p1; j=0; while(p2!=NULL) { if(p2->cla>0) j++; p2=p2->next; } for(i=1;i<=j;i++) { p1=root1->sstr; p4=root4->sstr; while(p4!=NULL) if(p4->cla==i) { if(p4->type=='N') fprintf(fp,"repl %s with %s+",p4->field,p4->field); else fprintf(fp,"repl %s with ",p4->field); break; } else p4=p4->next; while(p1!=NULL) if(p1->cla==i) { if(p1->type=='N') fprintf(fp,"b->%s\n",p1->field); else if((k=='Y')||(k=='y')) fprintf(fp,"b->%s\n",p1->field); else fprintf(fp," %s\n",p1->field); break; } else p1=p1->next; } fprintf(fp,"else\nappen blank\n"); for(i=1;i<=j;i++) { p1=root1->sstr; p4=root4->sstr; while(p4!=NULL) if(p4->cla==i) { if(p4->type=='N') fprintf(fp,"repl %s with %s+",p4->field,p4->field); else fprintf(fp,"repl %s with ",p4->field); break; } else p4=p4->next; while(p1!=NULL) if(p1->cla==i) { if(p1->type=='N') fprintf(fp,"b->%s\n",p1->field); else if((k=='Y')||(k=='y')) fprintf(fp," b->%s\n",p1->field); else fprintf(fp," %s\n",p1->field); break; } else p1=p1->next; } fprintf(fp,"endif\nsele 2\nskip\nenddo\nsele 1\nrecall all\nclose all\n! c:brow c:tj_sult.dbf\n"); /*------------------------------end of gene body-------------------------*/ fprintf(fp,"\nclear\n"); fprintf(fp,"ser='Y'\n @10,10 say \"┤╦┤╬└█╝╞╙╨╨º┬≡ú┐(Y/N) \" get ser\n read\n"); fprintf(fp,"if ser='Y'.or.ser='y' \n"); if(((lan=='Y')||(lan=='y'))&&(root4->serve=='Y')) { fprintf(fp,"do while .T.\ntime=0\ndo while .not.flock().and.time<250\n"); fprintf(fp,"time=time+1\nenddo\nif time<250\n"); } fprintf(fp,"!copy c:tj_sult.dbf %s\\%s.dbf >zl\n",root4->path,root4->dbname); if(((lan=='y')||(lan=='Y'))&&(root4->serve=='Y')) { fprintf(fp,"unlock\nexit\nelse\nyes=' '\nclear\n@12,10 say \"╬─╝■╥╤▒╗╞Σ╦√╙├╗º,╝╠╨°╝╙╦°┬≡ú┐(Y/N)\" get yes\n"); fprintf(fp,"read\nclear\nif yes='N'.or.yes='n'\n@15,10 say \"╟δ╣²╥╗╗ß╢∙╘┘╙├\" \nwait\n"); fprintf(fp,"return\nendif\nendif\nenddo\n"); } fprintf(fp,"clear\nendif\n"); fprintf(fp,"!copy c:tj_sult.dbf c:%sj.dbf >zl\n",file); fprintf(fp,"ser='N'\nclear\n@ 12,10 say \"─·╥¬▒╕╖▌└█╝╞╜ß╣√┐Γ┬≡ú┐(Y/N) \" get ser\nread\n"); fprintf(fp,"if ser='Y'.or.ser='y'\nser=space(30)\n@12,10 say \"╟δ╩Σ╚δ─┐┬╝╝░╬─╝■├√:\" get ser\nread\n"); fprintf(fp,"!copy c:tj_sult.dbf &ser >zl\n"); clear_win(14,4,20,75,6,0,black); printf("\033[17;20H┤╦═│╝╞╜ß╣√╥¬╣▓╧φ┬≡ú┐(Y/N)"); k=getcc(); if((k=='Y')||(k=='y')) { print(19,10,6|1,"╩Σ╚δ╣▓╧φ─┐┬╝╝░╬─╝■├√: "); scanf("%s",gsxih); fprintf(fp,"!copy c:tj_sult.dbf %s >zl\n",gsxih); } fprintf(fp,"!del c:tj_sult.dbf\n"); fclose(fp); num[5]++; } /*-------------------------WRITE STATIS.TXT -------------------------*/ w_menus() { FILE *fp; if((fp=fopen("statis5.txt","a"))==NULL) { error("don't open file statis.txt"); exit(1); } fprintf(fp,"#%s#,#%s#\n",workname,file); fclose(fp); } /*----------------------------END ALL------------------------------------*/