home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a014 / 1.ddi / CDBINC.EXE / SUB1.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-11-13  |  27.6 KB  |  952 lines

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include <alloc.h>
  4. #include<dos.h>
  5. #define pr(x)  fprintf(fp,x)
  6. #define  MAXP  10
  7. #define CONT 20
  8. #define CB 14
  9. typedef struct bb{
  10.          char MEAN[21],DB[9],KEY[4][11],COFLAG,COPATH[11];
  11.          int no;
  12.          struct bb *next;
  13.         }BASE;
  14. typedef struct cc {
  15.          char field[128][11],ftype[128];
  16.          int len1[128];
  17.                  int NN;
  18.          int no;
  19.          struct cc *next;
  20.            }CONTENT;
  21. typedef struct ll {
  22.             int  MAR[6][128];
  23.             int  no;
  24.             struct ll *next;
  25.             }LINK;
  26. LINK *flink,*mylink;
  27. BASE *fbase;
  28. CONTENT *fcon;
  29. char *explain="***╠φ╝╙,▓σ╚δ,╨▐╕─,╔╛│²,▓Θ╤»***";
  30. int NB,repeat,I,J,II,JJ,linkflag;
  31. char PATH[30],lnamebak[5][3][11],lname[5][31];
  32. extern int code;
  33. main(int argc,char *argv[])
  34. { int road[30][9],i=0,aa,j,ii,jj,k,modi_ctc;
  35.   char dname[30][20],p,buff[60];
  36.   BASE *mybase;
  37.   CONTENT *mycon;
  38. /*  LINK *mylink;*/
  39.   FILE *fp;
  40.   strcpy(PATH,argv[1]);
  41.   if(argc<2)
  42.     return;
  43.   i=0;
  44.   if ((fp = fopen("creat\\amd1.txt", "r"))!=NULL)
  45.     {
  46.        fscanf(fp,"%d\n",&i)    ;
  47.        for(p=0; p<i; p++)
  48.        fscanf(fp,"%s",dname[p])    ;
  49.     }
  50.   getbase();
  51. /*  getcontent(argv[1]);*/
  52.   modi_ctc=i;
  53.   for(;;)
  54.   {
  55.      clear_win(0,0,24,79,0x70);
  56.      clear_win(8,22,14,62,0);
  57.      clear_win(7,20,13,60,30);
  58.      color_puts("─· ╥╤ ╔· │╔ ┴╦    ╕÷ ▓┘ ╫≈ ─ú ┐Θ",30,8,24);
  59.      cursor(8,39);
  60.      printf("%d",modi_ctc);
  61.      color_puts("╟δ ╩Σ ╚δ ─· ╜½ ╨▐ ╕─ ╔· │╔ ─ú ┐Θ",30,9,24);
  62.      color_puts("╡─ ╨≥ ║┼ (0 ╬¬ ═╦ │÷,   ┤≤ ╙┌  ",30,10,24);
  63.      printf("%d",modi_ctc);
  64.      color_puts("╘≥ ╠φ ╝╙ ╔· │╔,╖± ╘≥,╨▐ ╕─ ╔· │╔",30,11,24);
  65.      cursor(12,40);
  66.      scanf("%d",&i);
  67.      if (i==0) break;
  68.      if (i>modi_ctc) modi_ctc++;
  69.      i=(i>modi_ctc)?(modi_ctc-1):i-1;
  70.   if ((aa=getroad(argv[1],road[i],i))!=0)
  71.     {
  72.        for (ii=0;ii<5;ii++)
  73.        for (jj=0;jj<3;jj++)
  74.            lnamebak[ii][jj][0]='\0';
  75.        mybase=fbase;
  76. /*       while(mybase->no!=(road[i][0]-1))
  77.      mybase=mybase->next;*/
  78.        if(aa==1)
  79.        { /*j=0;
  80.      while (mybase->MEAN[j]!='\0')
  81.      dname[i][j]=mybase->MEAN[j++];
  82.      dname[i][j]='\0';*/
  83.      clear_win(15,36,19,72,0)    ;
  84.      clear_win(14,34,18,70,0|53)    ;
  85.      color_puts("╢¿╥σ┴¼╜╙┐Γ╡─╩╢▒≡├√(╫ε╢α20╕÷╫╓╖√): ",0|53,15,36)    ;
  86.      color_puts("                         ",0|53,17,40)    ;
  87.      cursor( 17, 43 )    ;
  88.      scanf("%s",dname[i]);
  89.        }
  90.        else
  91.     deflink(road[i],dname[i],argv[1]);
  92.      flink=(LINK*)malloc(sizeof(LINK));
  93.      flink->next=NULL;
  94.      flink->no=road[i][0];
  95.      mylink=flink;
  96.      for(ii=0;ii<=8;ii++)
  97.        for(jj=0;jj<=127;jj++)
  98.          mylink->MAR[ii][jj]=0;
  99.  
  100.     sele_disp(road[i],road[i][0]-1);
  101.     generate(road[i],i,PATH);
  102.     free(flink);
  103.     mycon=fcon;
  104.     while (fcon!=NULL)
  105.           {
  106.           fcon=fcon->next;
  107.           mycon->next=NULL;
  108.           free(mycon);
  109.           mycon=fcon;
  110.           }
  111.     i++;
  112.     }
  113.   else break;
  114.   }
  115.   i=modi_ctc;
  116.   system("cls");
  117.   cr_sub1(i,dname);
  118.  
  119.   fp = fopen("creat\\amd1.txt","w")    ;
  120.   fprintf(fp,"%d\n",i)    ;
  121.   for(k=0; k<i; k++)
  122.     fprintf(fp,"%s\n",dname[k])    ;
  123.   fclose(fp)    ;
  124.  
  125. }
  126.  
  127.  
  128.  
  129. cr_sub1(int  i,char dname[][20])
  130. {
  131.   FILE *fp;
  132.   int k,row,col;
  133.   color_puts("╒²╘┌╔·│╔,╟δ╔╘║≥!",14,12,30)    ;
  134.   fp=fopen("amd1.prg","w");
  135.   pr("set talk off\n");
  136.   pr("do while .t.\n");
  137.   pr("set color to /w\nclear\nset color to w+/B\n");
  138.   pr("@0,0 say '***╠φ╝╙,▓σ╚δ,╨▐╕─,╔╛│²,▓Θ╤»***'\n");
  139.   pr("@2,25 say '─·┐╔╢╘╧┬┴╨┐Γ╜°╨╨▓┘╫≈'\n");
  140.   pr("@3,25 say '~~~~~~~~~~~~~~~~~~~~'\n");
  141.   pr("set color to W+/n\n");
  142.   fprintf(fp,"@ 6,15 clea to %d,65\n",6+i/2+i%2+1);
  143.   fprintf(fp,"set color to w+/b\n@5,13 clea to %d,63\n",5+i/2+i%2+1);
  144.   row=6;col=15;
  145.   for(k=0;k<i;k++)
  146.    { fprintf(fp,"@%d,%d say '%d. %s'\n",row,col,k+1,dname[k]);
  147.      if(col==45) {col=15;row++;}
  148.      else col+=30;
  149.    }
  150.   for(k=1;k<=6;k++)
  151.   fprintf(fp,"select %d\nuse\n",k);
  152.   pr("choice=space(2)\nset color to w+/b\n");
  153.   pr("@22,10 say '╟δ╩Σ╚δ─·╡─╤í╘±, 0 ▒φ╩╛═╦│÷  :    ' get choice\n read\n");
  154.   pr("set color to W+/N\nif trim(choice)='0'\n");
  155.   pr("return\nendif\n");
  156.   pr("nn='asub'+TRIM(choice)+'.prg'\n");
  157.   pr("if FILE(nn)\n");
  158.   pr("do asub&choice\n");
  159.   pr("endif\n");
  160.   pr("enddo\n");
  161.   fclose(fp);
  162. }
  163.  
  164.  
  165.  
  166. generate(int *s,int ii,char *aarr)
  167. {
  168.   FILE *fp;
  169.   BASE *midbase,*mybase;
  170.   char name[15],inname[15],lookname[15],loname[15],tname[5];
  171.   int j,k,row,col,l,lb,n,ctcn;
  172.   int coflag[10]    ;
  173.  
  174.   if (ii+1<10) {tname[0]='1'+ii;tname[1]='\0';}
  175.   if (ii+1>9)  {tname[0]='0'+(ii+1)/10; tname[1]='0'+(ii+1)%10; tname[2]='\0';}
  176.   strcpy(name,"asub"); strcat(name,tname); strcat(name,".prg");
  177.   strcpy(inname,"a1i"); strcat(inname,tname); strcat(inname,".prg");
  178.   strcpy(lookname,"a1l"); strcat(lookname,tname); strcat(lookname,".prg");
  179.   strcpy(loname,"a1lo"); strcat(loname,tname); strcat(loname,".prg");
  180.   midbase=fbase;
  181.   while(midbase->no!=(s[0]-1))
  182.   midbase=midbase->next;
  183.   fp=fopen(name,"w");
  184.   pr("set exclusive off\n")    ;
  185.   pr("set proced to proced\n")    ;
  186. /*    fprintf(fp,"on error do %sagain\n",aarr)    ;*/
  187.     pr("clear\n");
  188.     n=s[0]-1;
  189.     mybase=fbase;
  190.     while(mybase->no!=n)
  191.     mybase=mybase->next;
  192.     fprintf(fp,"sele 10\nuse %sndx\n",aarr);
  193.     if( mybase->COFLAG != 'Y' && mybase->COFLAG != 'y')
  194.       {
  195.     fprintf(fp,"sele A\n use %s%s exclusive\n",aarr,mybase->DB)    ;
  196.     coflag[1] = 0    ;
  197.       }
  198.     else{
  199.        fprintf(fp,"sele A\n use %s%s\n",mybase->COPATH,mybase->DB)    ;
  200.        coflag[1] = 1    ;
  201.     }
  202.     j=1;
  203.     while(s[j]!=0)
  204.      {
  205.        mybase=fbase;
  206.        while(mybase->no!=(s[j]-1))
  207.      mybase=mybase->next;
  208.        fprintf(fp,"sele 10\ngo top\n");
  209.        fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  210.        fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
  211.        fprintf(fp,"select %c\n",j+1+64);
  212.        if( mybase->COFLAG != 'Y' && mybase->COFLAG != 'y')
  213.       {
  214.      fprintf(fp,"sele 10\n use %sndx exclusive\ngo top\n",aarr);
  215.        fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  216.        fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
  217.        fprintf(fp,"select %c\n",j+65);
  218.    coflag[j+1]=0    ;
  219.        fprintf(fp,"use %s%s inde %s&nf exclusive\n",aarr,mybase->DB,aarr)    ;
  220.       }
  221.        else
  222.       {
  223.        fprintf(fp,"sele 10\n use %sndx \ngo top\n",mybase->COPATH);
  224.        fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  225.        fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
  226.        fprintf(fp,"select %c\n",j+65);
  227.  
  228.         coflag[j+1] = 1    ;
  229.         fprintf(fp,"use %s%s inde %s&nf\n",mybase->COPATH,mybase->DB,mybase->COPATH)    ;
  230.         fprintf(fp,"sele 10\nuse %sndx exclusive\n",aarr)    ;
  231.       }
  232.        if (linkflag==0)
  233.       fprintf(fp,"sele A\nset rela to %s into %c\n",lname[j-1],j+65)    ;
  234.        else
  235.       fprintf(fp,"sele %c\nset rela to %s into %c addi\n",j+64,lname[j-1],j+65)    ;
  236.        j++;
  237.      }
  238.     pr("sele A\ndo while .t.\n");
  239.     pr("clear\n");
  240.     pr("choice=space(1)\n");
  241.     pr("do caidan2 with choice\n")    ;
  242.     pr("ap=0\n");
  243.     pr("do case\n");
  244.     pr("case choice='0'\n");
  245. /**/
  246.     for(j=0; s[j]>0; j++)
  247.       {
  248.     fprintf(fp, "select %d\n", j+1)    ;
  249.     for(mybase=fbase; mybase->no<s[j]-1; mybase=mybase->next)    ;
  250.     if( coflag[j+1] )
  251.       {
  252.      fprintf(fp,"sele 10\n use %sndx \ngo top\n",mybase->COPATH);
  253.        fprintf(fp,"loca for trim(┐Γ├√)='%s'\n",mybase->DB);
  254.        fprintf(fp,"if .not.eof()\nnf='%s'+trim(╦≈╥²╬─╝■)\n",mybase->COPATH);
  255.        fprintf(fp, "skip\nloca rest for trim(┐Γ├√)='%s'\n",mybase->DB);
  256.        fprintf(fp,"do while .not. eof()\nnf=nf+','+'%s'+trim(╦≈╥²╬─╝■)\ncontinue\nenddo\n",mybase->COPATH)    ;
  257.        fprintf(fp,"select %d\nuse %s%s inde &nf exclusive\nreindex\nuse\nendif\n",j+1,mybase->COPATH,mybase->DB)    ;
  258.       }
  259.     else
  260.      {
  261.      fprintf(fp,"sele 10\n use %sndx \ngo top\n",aarr);
  262.        fprintf(fp,"loca for trim(┐Γ├√)='%s'\n",mybase->DB);
  263.        fprintf(fp,"if .not.eof()\nnf='%s'+trim(╦≈╥²╬─╝■)\n",aarr);
  264.        fprintf(fp, "skip\nloca  rest for trim(┐Γ├√)='%s'\n",mybase->DB);
  265.        fprintf(fp,"do while .not. eof()\nnf=nf+','+'%s'+trim(╦≈╥²╬─╝■)\ncontinue\nenddo\n",aarr)    ;
  266.        fprintf(fp,"select %d\nuse %s%s inde &nf exclusive\nreindex\nuse\nendif\n",j+1,aarr,mybase->DB)    ;
  267.        }
  268.       }
  269.     pr("sele 10\nuse\nreturn\n");
  270.     pr("case choice='1'\n");
  271.     pr("clear\n");
  272.     pr("tt=' '\n");
  273.     pr("@12,12 say '╩╟ ╖± ╥¬ ╩² ╛▌ ┤½ ╡▌?' get tt pict '!'\n");
  274.     pr("read\n");
  275.     pr("m=.t.\n");
  276.     pr("do while m\n");
  277.     pr("clear\n");
  278.     pr("if .NOT. tt='Y'\n");
  279.     pr("sele A\n")    ;
  280.     pr("append blank\n");
  281.     pr("else\n");
  282.     for(l=1;l<=j;l++)
  283.     {
  284.       fprintf(fp,"select %d\n",l);
  285.       pr("bb=reccount()\n");
  286.       pr("copy to qqqq for RECNO()=bb\n");
  287.       pr("appe from qqqq\n");
  288.       pr("run del qqqq.dbf\n");
  289.     }
  290.     pr("endif\n");
  291.     pr("w=.t.\n");
  292.     fprintf(fp,"do %s with w\n",inname);
  293.     pr("yy=' '\n");
  294.     pr("m=.F.\n")    ;
  295.     pr("@24,0 say '─·╗╣╥¬╝╠╨°╠φ╝╙┬≡? ' get yy\n");
  296.     pr("read\n");
  297.     pr("if yy='y'.or. yy='Y'\n");
  298.     pr("m=.t.\n");
  299.     pr("@24,0 say SPACE(80)\nendif\n");    /*This line modified at Nov.13, 1992 */
  300.     pr("enddo\n");   /* This line is new added */
  301.     pr("case choice='2'\n");
  302.     pr("clear\n");
  303.     pr("renu=SPACE(4)\n");
  304.     pr("@12,10 say '╟δ╩Σ╚δ╝╟┬╝║┼ '  get renu picture '9999'\n");
  305.     pr("read\n");
  306.     pr("renu=VAL(renu)\n");
  307.     pr("m=.t.\n");
  308.     pr("do while m\n");
  309.     pr("clear\n");
  310.     fprintf(fp,"select A\n");
  311.     pr("if renu<reccount()\n");
  312.     pr("go renu\n");
  313.     pr("else\n");
  314.     pr("go bottom\n");
  315.     pr("endif\n");
  316.     if(coflag[1])
  317.     {
  318.       pr(" recnow=recno()\n")    ;
  319.       pr("opendbf=DBF()\n")    ;
  320.       pr("use &opendbf exclusive\n")    ;
  321.       pr("go recnow\ninsert blank before\nrecnow=recno()\n");
  322.       pr("use &opendbf \ngo recnow\n")    ;
  323.     }
  324.     else
  325.        pr("insert blank before\n")    ;
  326.     pr("w=.t.\n");
  327.     fprintf(fp,"do %s with w\n",inname);
  328.     pr("yy=' '\n");
  329.     pr("m=.F.\n")    ;
  330.     pr("@24,0 say '─·╗╣╥¬╝╠╨°▓σ╚δ┬≡? ' get yy pict 'A'\n");
  331.     pr("read\n");
  332.     pr("if yy='y'.or. yy='Y'\n");
  333.     pr("m=.t.\nrenu=renu+1\n");
  334.     pr("endif\n");
  335.     pr("@24,0 say SPACE(80)\nenddo\n");
  336.     pr("case choice='3'\n");
  337.     pr("ww=.t.\n");
  338.     pr("do while ww\n");
  339.     pr("mm=' '\n");
  340.     pr("do caidan1 with mm\n")    ;
  341.     pr("do case\n");
  342.     pr("case mm='0'\n");
  343.     pr("ww=.f.\n");
  344.     pr("case mm='1'\n");
  345.     pr("renu1=0\nrenu2=0\n")    ;
  346.     pr("@20,20 say '╟δ╩Σ╚δ╩╫╝╟┬╝║┼ ' get renu1 picture '9999' range 1,9999\n" );
  347.     pr("@20,60 say '╬▓╝╟┬╝║┼ ' get renu2 picture '9999' range 1,9999\n")    ;
  348.     pr("read\nset color to W/N\n");
  349.     pr("m=renu1\n");
  350.     pr("select 1\n");
  351.     pr("go top\n");
  352.     pr("if m>reccount()\n");
  353.     pr("m=renu2+1\n");
  354.     pr("endif\n");
  355.     pr("do while m<=renu2 .AND. .NOT. EOF()\n");
  356.     pr("clear\n");
  357.     pr("select 1\n");
  358.     pr("go m\n");
  359.     pr("w=.t.\n");
  360.     fprintf(fp,"do %s with w\n",inname);
  361.     pr("m=m+1\n");
  362.     pr("select 1\n");
  363.     pr("skip\n");
  364.     pr("enddo\n");
  365.     pr("case mm='2'\n");
  366.     pr("@20,20 say '╟δ╩Σ╚δ╓≈╝ⁿ╓╡' \n");
  367.     pr("condit='.t.'\n");
  368.     for (ctcn=0;ctcn<4&&(midbase->KEY[ctcn][0]!='\0');ctcn++)
  369.     {
  370.     fprintf(fp,"skey%d=SPACE(30)\n",ctcn);
  371.     fprintf(fp,"accept '                          %s=' to skey%d\n",midbase->KEY[ctcn],ctcn);
  372.     pr("w=.t.\n");
  373.     fprintf(fp,"tpkey=%s\n",midbase->KEY[ctcn]);
  374.     pr("if TYPE('tpkey')='C'\n");
  375.     fprintf(fp,"condit=trim(condit)+'.and.%s=skey%d'\n",midbase->KEY[ctcn],ctcn);
  376.     pr("else\n");
  377.     fprintf(fp,"condit=trim(condit)+'.and.%s=VAL(skey%d)'\n",midbase->KEY[ctcn],ctcn);
  378.     pr("endif\n");
  379.     }
  380.     pr("sele A\nloca for &condit\n");
  381.     pr("if EOF()\n");
  382.     pr("@22,10 say '┤╦╓≈╝ⁿ▓╗┤µ╘┌'\n");
  383.     pr("wait\n");
  384.     pr("@23,0 clear\n");
  385.     pr("loop\n");
  386.     pr("endif\n");
  387.     fprintf(fp,"do %s with w\n",inname);
  388.     pr("case mm='3'\n");
  389.     pr("clear\n");
  390.     pr("select 1\n");
  391.     pr("go top\n");
  392.     pr("m=.t.\n");
  393.     pr("do while .not. EOF() .and. m\n");
  394.     pr("w=.t.\n");
  395.     pr("kk=w\n");
  396.     fprintf(fp,"do %s with w\n",inname);
  397.     pr("if kk\n");
  398.     pr("yy=' '\n");
  399.     pr("@24,0 say '─·╗╣╥¬╝╠╨°╨▐╕─┬≡? ' get yy\n");
  400.     pr("read\n");
  401.     pr("@24,0 say SPACE(80)\n");
  402.     pr("if yy<>'y'.AND.yy<>'Y'\n");
  403.     pr("m=.f.\n");
  404.     pr("endif\n");
  405.     pr("endif\n");
  406.     pr("select 1\n");
  407.     pr("skip\n");
  408.     pr("enddo\n");
  409.     pr("endcase\n");
  410.     pr("enddo\n");
  411.     pr("case choice='4'\n");
  412.     pr("ww=.t.\n");
  413.     pr("do while ww\n");
  414.     pr("mm=' '\n")    ;
  415.     pr("do caidan1 with mm\n")    ;
  416.     pr("do case\n");
  417.     pr("case mm='0'\n");
  418.     pr("ww=.f.\n");
  419.     pr("case mm='1'\n");
  420.     pr("renu1=0\nrenu2=0\n")    ;
  421.     pr("@20,20 say '╟δ╩Σ╚δ╩╫╝╟┬╝║┼ ' get renu1 picture '9999' range 1,9999\n");
  422.     pr("@20,60 say '╬▓╝╟┬╝║┼ ' get renu2 picture '9999' range 1,9999\n");
  423.     pr("read\nset color to W/N\n");
  424.     pr("m=renu1\n");
  425.     pr("select 1\n");
  426.     pr("go top\n");
  427.     pr("if m>reccount()\n");
  428.     pr("m=renu2+1\n");
  429.     pr("endif\n");
  430.     pr("do while m<=renu2 .AND. .NOT. EOF()\n");
  431.     pr("clear\n");
  432.     pr("select 1\n");
  433.     pr("go m\n");
  434.     pr("w=.t.\n");
  435.     pr("clear\n");
  436.     fprintf(fp,"do %s\n",lookname);
  437.     pr("yy=' '\n");
  438.     pr("@24,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy picture '!'\nread\n");
  439.     pr("if yy='Y'.or. yy='y'\n")    ;
  440.     for(lb=1;lb<=1;lb++)
  441.      {
  442.        fprintf(fp,"select %d\n",lb);
  443.        if(coflag[lb])
  444.     {
  445.       pr("opendbf=DBF()\ncurrec=recno()\n")    ;
  446.       pr("use &opendbf exclsive\ndelete\nuse &opendbf\ngo currec\n")    ;
  447.     }
  448.        else
  449.        pr("delete\n")    ;
  450.      }
  451.     pr("endif\n")    ;
  452.     pr("@24,0 say SPACE(80)\n");
  453.     pr("select 1\n");
  454.     pr("m=m+1\n");
  455.     pr("enddo\n");
  456.     pr("sele 1\nmdbf=dbf()\nuse &mdbf excl\npack\n");
  457.     pr("case mm='2'\n");
  458.     pr("@20,20 say '╟δ╩Σ╚δ╓≈╝ⁿ╓╡' \n");
  459.     pr("condit='.t.'\n");
  460.     for (ctcn=0;ctcn<4&&(midbase->KEY[ctcn][0]!='\0');ctcn++)
  461.     {
  462.     fprintf(fp,"skey%d=SPACE(30)\n",ctcn);
  463.     fprintf(fp,"accept '                          %s=' to skey%d\n",midbase->KEY[ctcn],ctcn);
  464.     pr("w=.t.\n");
  465.     fprintf(fp,"tpkey=%s\n",midbase->KEY[ctcn]);
  466.     pr("if TYPE('tpkey')='C'\n");
  467.     fprintf(fp,"condit=trim(condit)+'.and.%s=skey%d'\n",midbase->KEY[ctcn],ctcn);
  468.     pr("else\n");
  469.     fprintf(fp,"condit=trim(condit)+'.and.%s=VAL(skey%d)'\n",midbase->KEY[ctcn],ctcn);
  470.     pr("endif\n");
  471.     }
  472.     pr("sele A\nloca for &condit\n");
  473.     pr("if EOF()\n");
  474.     pr("@22,10 say '┤╦╓≈╝ⁿ▓╗┤µ╘┌!'\n");
  475.     pr("wait\n");
  476.     pr("@23,0 clear\n");
  477.     pr("loop\n");
  478.     pr("endif\n");
  479.     pr("if w\n");
  480.     pr("clear\n");
  481.     fprintf(fp,"do %s\n",lookname);
  482.     pr("yy=' '\n");
  483.     pr("@24,0 say SPACE(80)\n");
  484.     pr("@24,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
  485.     pr("if yy='y'.or. yy='Y'\n");
  486.     for(lb=1;lb<=1;lb++)
  487.      {
  488.        fprintf(fp,"select %d\n",lb);
  489.        if(coflag[lb])
  490.     {
  491.       pr("opendbf=DBF()\n")    ;
  492.       pr("use &opendbf exclsive\ndelete\npack\nuse &opendbf\n")    ;
  493.     }
  494.        else
  495.        pr("delete\npack\n")    ;
  496.      }
  497.     pr("endif\n");
  498.     pr("endif\n");
  499.     pr("case mm='3'\n");
  500.     pr("clear\n");
  501.     pr("select 1\n");
  502.     pr("go top\n");
  503.     pr("m=.t.\n");
  504.     pr("do while .not. EOF() .and. m\n");
  505.     pr("w=.t.\n");
  506.     pr("if w\n");
  507.     pr("clear\n");
  508.     fprintf(fp,"do %s\n",lookname);
  509.     pr("yy=' '\n");
  510.     pr("@24,0 say SPACE(80)\n");
  511.     pr("@24,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
  512.     pr("@24,0 say SPACE(80)\n");
  513.     pr("if yy='y'.or. yy='Y'\n");
  514.     for(lb=1;lb<=1;lb++)
  515.      {
  516.        fprintf(fp,"select %d\n",lb);
  517.        if(coflag[lb])
  518.     {
  519.       pr("opendbf=DBF()\ncurrec=recno()\n")    ;
  520.       pr("use &opendbf exclsive\ndelete\nuse &opendbf\ngo currec\n")    ;
  521.     }
  522.        else
  523.        pr("delete\n")    ;
  524.      }
  525.     pr("endif\n");
  526.     pr("endif\n");
  527.     pr("if w\n");
  528.     pr("yy=' '\n");
  529.     pr("@24,0 say '─·╗╣╥¬╝╠╨°╔╛│²┬≡? ' get yy\n");
  530.     pr("read\n");
  531.     pr("@24,0 say SPACE(80)\n");
  532.     pr("if yy<>'y'.AND.yy<>'Y'\n");
  533.     pr("m=.f.\n");
  534.     pr("endif\n");
  535.     pr("endif\n");
  536.     pr("select 1\n");
  537.     pr("skip\n");
  538.     pr("enddo\nsele 1\nmdbf=dbf()\nuse &mdbf excl\npack\n");
  539.     pr("endcase\n");
  540.     pr("enddo\n");
  541.     pr("case choice='5'\n");
  542.     pr("ww=.t.\n");
  543.     pr("do while ww\n");
  544.     pr("mm=' '\n")    ;
  545.     pr("do caidan1 with mm\n")    ;
  546.     pr("do case\n");
  547.     pr("case mm='0'\n");
  548.     pr("ww=.f.\n");
  549.     pr("case mm='1'\n");
  550.     pr("renu1=0\nrenu2=0\n")    ;
  551.     pr("@20,20 say '╟δ╩Σ╚δ╩╫╝╟┬╝║┼ ' get renu1 picture '9999'  range 1,9999\n ");
  552.     pr("@20,60 say '╬▓╝╟┬╝║┼ ' get renu2 picture '9999' range 1,9999\n");
  553.     pr("read\nset color to W/N\n");
  554.     pr("m=renu1\n");
  555.     pr("select 1\n");
  556.     pr("go top\n");
  557.     pr("if m>reccount()\n");
  558.     pr("m=renu2+1\n");
  559.     pr("endif\n");
  560.     pr("do while m<=renu2 .AND. .NOT. EOF()\n");
  561.     pr("clear\n");
  562.     pr("select 1\n");
  563.     pr("go m\n");
  564.     pr("w=.t.\n");
  565.     pr("clear\n");
  566.     fprintf(fp,"do %s\n",lookname);
  567.     pr("yy=' '\n");
  568.     pr("@24,0 say SPACE(80)\n");
  569.     pr("@24,0 say '─·╥¬╝╠╨°▓Θ╤»┬≡  (Y/N) ' get yy\n");
  570.     pr("read\n");
  571.     pr("@24,0 say SPACE(80)\n");
  572.     pr("if yy='y' .or. yy='Y'\n");
  573.     pr("m=m+1\n");
  574.     pr("skip\n");
  575.     pr("else\n m=renu2+1\n");
  576.     pr("endif\n");
  577.     pr("enddo\n");
  578.     pr("case mm='2'\n");
  579.     pr("condit='.t.'\n");
  580.     for (ctcn=0;ctcn<4&&(midbase->KEY[ctcn][0]!='\0');ctcn++)
  581.     {
  582.     fprintf(fp,"skey%d=SPACE(30)\n",ctcn);
  583.     fprintf(fp,"accept '                          %s=' to skey%d\n",midbase->KEY[ctcn],ctcn);
  584.     pr("w=.t.\n");
  585.     fprintf(fp,"tpkey=%s\n",midbase->KEY[ctcn]);
  586.     pr("if TYPE('tpkey')='C'\n");
  587.     fprintf(fp,"condit=trim(condit)+'.and.%s=skey%d'\n",midbase->KEY[ctcn],ctcn);
  588.     pr("else\n");
  589.     fprintf(fp,"condit=trim(condit)+'.and.%s=VAL(skey%d)'\n",midbase->KEY[ctcn],ctcn);
  590.     pr("endif\n");
  591.     }
  592.     pr("sele A\nloca for &condit\n");
  593.     pr("if EOF()\n");
  594.     pr("@22,10 say '┤╦╓≈╝ⁿ▓╗┤µ╘┌'\n");
  595.     pr("wait\n");
  596.     pr("@23,0 clear\n");
  597.     pr("loop\n");
  598.     pr("else\nw=.t.\n");
  599.     pr("endif\n");
  600.     pr("if w\n");
  601.     pr("clear\n");
  602.     fprintf(fp,"do %s\n",lookname);
  603.     pr("@22,0 clear\n");
  604.     pr("wait\n");
  605.     pr("endif\n");
  606.     pr("case mm='3'\n");
  607.     pr("clear\n");
  608.     pr("select 1\n");
  609.     pr("go top\n");
  610.     pr("m=.t.\n");
  611.     pr("do while .not. EOF() .and. m\n");
  612.     pr("w=.t.\n");
  613.     pr("if w\n");
  614.     pr("clear\n");
  615.     fprintf(fp,"do %s\n",lookname);
  616.     pr("endif\n");
  617.     pr("if w\n");
  618.     pr("yy=' '\n");
  619.     pr("@24,0 say SPACE(80)\n");
  620.     pr("@24,0 say '─·╗╣╥¬╝╠╨°▓Θ╤»┬≡? ' get yy\n");
  621.     pr("read\n");
  622.     pr("@24,0 say SPACE(80)\n");
  623.     pr("if yy<>'y'.AND.yy<>'Y'\n");
  624.     pr("m=.f.\n");
  625.     pr("endif\n");
  626.     pr("endif\n");
  627.     pr("select 1\n");
  628.     pr("skip\n");
  629.     pr("enddo\n");
  630.     pr("endcase\n");
  631.     pr("enddo\n");
  632.     pr("endcase\n");
  633.     pr("enddo\n");
  634. /*    for(j=0; s[j]>0; j++)
  635.       {
  636.     fprintf(fp, "select %d\n", j+1)    ;
  637.     for(mybase=fbase; mybase->no<s[j]-1; mybase=mybase->next)    ;
  638.     if( coflag[j+1] )
  639.       {
  640.      fprintf(fp,"sele 10\n use %sndx \ngo top\n",mybase->COPATH);
  641.        fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  642.        fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
  643.        fprintf(fp, "skip\nloca rest for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  644.        fprintf(fp,"if .not. eof()\nnf=nf+','+trim(╦≈╥²╬─╝■)\ncontinue\nendif\n")    ;
  645.        fprintf(fp,"use %s%s inde %s&nf exclusive\nreindex\nuse",mybase->COPATH,mybase->DB,mybase->COPATH)    ;
  646.       }
  647.     else
  648.      {
  649.      fprintf(fp,"sele 10\n use %sndx \ngo top\n",aarr);
  650.        fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  651.        fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
  652.        fprintf(fp, "skip\nloca  rest for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  653.        fprintf(fp,"if .not. eof()\nnf=nf+','+trim(╦≈╥²╬─╝■)\ncontinue\nendif\n")    ;
  654.        fprintf(fp,"use %s%s inde %s&nf exclusive\nreindex\nuse",aarr,mybase->DB,aarr)    ;
  655.        }
  656.       } */
  657.  
  658.     pr("close all\nreturn\n");
  659.     fclose(fp);
  660.     idata(inname,j,s,s[0]-1,aarr);
  661.     ldata(lookname,j,s,s[0]-1);
  662. }
  663.  
  664.  
  665.  
  666. idata(inname,j,s,k,aarr)
  667. char *inname,*aarr;
  668. int j,k,*s;
  669. { int row,col,la,lla,llb,lb,m,l,ll,ct,rowctc, i;
  670.   int llbctc,lbctc,lctc,llctc, temp;
  671.   char echo_len[70]    ;
  672.   FILE *fp;
  673.   LINK *mylink;
  674.   CONTENT *mycon;
  675.   BASE *midbase;
  676.     fp=fopen(inname,"w");
  677.     mylink=flink;
  678. /*    while (mylink->no!=k)
  679.       mylink=mylink->next;*/
  680.     pr("parameters w\n");
  681. /**/pr("flag1=1\n");
  682. /**    for(i=0; s[i]!=0; i++)**/
  683.     for (i=1 ;s[i]!=0; i++)
  684.     fprintf(fp,"flag%d=0\n", i+1)    ;
  685.     pr("do while w\n");
  686.     pr("clear\n");
  687.     la=0;m=1;lla=0;
  688.     lb=0;llb=0;
  689.     while(m)
  690.      {
  691.     row=2;  col=15;
  692.     for(l=la;l<j;l++)
  693.       {
  694.          fprintf(fp,"select %d \n",l+1);
  695.          mycon=fcon;
  696.          midbase=fbase;
  697.          while (midbase->no!=(s[l]-1)) midbase=midbase->next;
  698.          while (mycon->no!=s[l]-1) mycon=mycon->next;
  699. /*         {
  700.            midbase=midbase->next;
  701.            mycon=mycon->next;
  702.          }*/
  703.         for(ll=lla;ll<mycon->NN;ll++)
  704.           {
  705.         if(mylink->MAR[s[l]-1][ll]==1)
  706.           {
  707.              fprintf(fp,"@%d,%d say '%s'\n",row,col-5,mycon->field[ll]);
  708.              fprintf(fp,"@%d,%d say %s\n",row+1,col,mycon->field[ll]);
  709.              if ((code==1)&&(mycon->ftype[ll]=='C'))
  710.             fprintf(fp," do codep with %d,%d,'%s',%s,'%d'\n",row+1,col,\
  711.                     mycon->field[ll],mycon->field[ll],l+1);
  712.              if(col==45)
  713.             if(row>19)
  714.               {
  715.                 if(ll==(mycon->NN-1))
  716.                 {lla=0;la=l+1;}
  717.                 else {la=l;lla=++ll;}
  718.                 break;
  719.               }
  720.             else {row+=2;col=15;}
  721.              else col+=30;
  722.           }
  723.           }
  724.       if(ll!=mycon->NN) break;
  725.       else lla=0;
  726.   }
  727. /**  fprintf(fp,"sele 1\n");**/
  728.   if(l==j)
  729.     m=0;
  730.   row=3;col=15;
  731.   for(l=lb;l<j;l++)
  732.     {
  733.        mycon=fcon;
  734.        midbase=fbase;
  735.        while (midbase->no!=(s[l]-1)) midbase=midbase->next;
  736.        while (mycon->no!=s[l]-1) mycon=mycon->next;
  737. /*     {
  738.         midbase=midbase->next;
  739.         mycon=mycon->next;
  740.      }*/
  741. /**      if(l>=1)
  742.     {**/
  743. /**       if (linkflag==0) fprintf(fp,"sele A\ncurrec=recno()\ngo top\ngo currec\n");
  744.        else fprintf(fp,"sele %c\ncurrec=recno()\ngo top\ngo currec\n",l-1+'A');
  745.        if ( l==0 )**/
  746.        if (l >= 1)
  747.          fprintf(fp,"sele %c\ncurrec=recno()\ngo top\ngo currec\n",l+64);
  748. /**       fprintf(fp,"select %d \nif eof() .and. flag%d=0\n",l+1, l+1); rowctc=row;**/
  749.        fprintf(fp,"select %d \nif eof() \n",l+1); rowctc=row;
  750. /**       fprintf(fp,"appe blank\nflag%d=1\n", l+1); row=rowctc;**/
  751.        fprintf(fp,"appe blank\nflag%d=1\nendif\nif flag%d=1\n", l+1,l+1); row=rowctc;
  752. /**/       if(midbase->COFLAG == 'y'  || midbase->COFLAG == 'Y')
  753. /**/         pr("do rlock24\n")    ;
  754.        if ( l>=1 ){
  755.        for (ct=0;ct<3;ct++)
  756.          if (lnamebak[l-1][ct][0]!='\0'){
  757.  
  758.           fprintf(fp,"replace %s with A->%s\n",lnamebak[l-1][ct],lnamebak[l-1][ct]);
  759. /**/    /***     if(midbase->COFLAG == 'y'  || midbase->COFLAG == 'Y')***/
  760. /**/    /***      pr("unlock\n"); ***/
  761.          }
  762.  
  763.     }
  764.       for(ll=llb;ll<mycon->NN;ll++)
  765.     {  if(mylink->MAR[s[l]-1][ll]==1)
  766.           {
  767.          if(midbase->COFLAG == 'y'  || midbase->COFLAG == 'Y')
  768.           {
  769.             switch( mycon->ftype[ll] )
  770.               {
  771.             case 'C':
  772.                 for(i=0; i<mycon->len1[ll]&&i<69; i++)
  773.                     echo_len[i]='X'    ;
  774.                 echo_len[i]='\0'    ;
  775. /****                fprintf(fp,"%sbak=space(%d)\n",  mycon->field[ll], mycon->len1[ll])    ;***/
  776. /**                fprintf(fp,"%sbak=%s\n",  mycon->field[ll], mycon->field[ll])    ;**/
  777. /**                fprintf(fp,"@%d,%d get %sbak picture '%s'\n",row,col,mycon->field[ll], echo_len)    ;**/
  778.                 fprintf(fp,"@%d,%d get %s\n",row,col,mycon->field[ll])    ;
  779.                 break    ;
  780.  
  781.             case 'N':
  782.                 for(i=0; i<mycon->len1[ll] && i<70; i++)
  783.                     echo_len[i]='9'    ;
  784.                 echo_len[i]='\0'    ;
  785. /**                fprintf(fp,"%sbak=%s\n", mycon->field[ll], echo_len)    ;**/
  786. /**                fprintf(fp,"%sbak=%s\n", mycon->field[ll], mycon->field[ll])    ;**/
  787. /**                fprintf(fp,"@%d,%d get %sbak picture '%s'\n",row,col,mycon->field[ll], echo_len)    ;**/
  788.                 fprintf(fp,"@%d,%d get %s\n",row,col,mycon->field[ll])    ;
  789.                 break    ;
  790.  
  791.             case 'D':
  792. /***                fprintf(fp,"%sbak=ctod('01/01/01')\n", mycon->field[ll])    ;***/
  793. /**                fprintf(fp,"%sbak=%s\n", mycon->field[ll],mycon->field[ll])    ;**/
  794. /**                fprintf(fp,"@%d,%d get %sbak picture '@D'\n",row,col,mycon->field[ll])    ;**/
  795.                 fprintf(fp,"@%d,%d get %s\n",row,col,mycon->field[ll])    ;
  796.                 break    ;
  797.  
  798.             case 'L':
  799. /**                fprintf(fp,"if %s\n", mycon->field[ll] )    ;**/
  800. /***                fprintf(fp," %sbak=.T.\n", mycon->field[ll] )    ;***/
  801. /**                            fprintf(fp," %sbak=%s\n", mycon->field[ll],mycon->field[ll]);**/
  802. /**                fprintf(fp," else\n %sbak=.F.\nendif\n", mycon->field[ll])    ;**/
  803. /**                fprintf(fp,"@%d,%d get %sbak picture '!'\n",row,col,mycon->field[ll])    ;**/
  804.                 fprintf(fp,"@%d,%d get %s\n",row,col,mycon->field[ll])    ;
  805.                 break    ;
  806.               }
  807.           }
  808.          else
  809.             fprintf(fp,"@%d,%d get %s\n",row,col,mycon->field[ll])    ;
  810.          if ((code==1)&&(mycon->ftype[ll]=='C'))
  811.             fprintf(fp," do codep with %d,%d,'%s',%s,'%d'\n",row,col,\
  812.                        mycon->field[ll],mycon->field[ll],l+1);
  813.          if(col==45)
  814.            if(row>19)
  815.               {
  816.             if(ll==(mycon->NN-1))
  817.               {llb=0;lb=l+1;}
  818.             else {lb=l;llb=++ll;}
  819.             break;
  820.               }
  821.            else {row+=2;col=15;}
  822.          else col+=30;
  823.           }
  824.     }
  825.  
  826.     pr("read\n")    ;
  827. /**/    if( midbase->COFLAG == 'Y' ||midbase->COFLAG == 'y')
  828.       pr("unlock \n");
  829.      pr("endif\n");
  830. /**    if( midbase->COFLAG == 'Y' ||midbase->COFLAG == 'y')
  831.       {
  832.     pr("do rlock24\n")    ;
  833.     for( temp=0; temp<mycon->NN; temp++)
  834.      if(mylink->MAR[s[l]-1][temp] == 1)
  835.        fprintf(fp,"replace %s with %sbak\n",mycon->field[temp],mycon->field[temp])    ;
  836.     if(l>0)
  837.         fprintf(fp, "replace %s with %c->%s\n", lname[l-1], s[l-1]+64, lname[l-1])    ;
  838.     pr("unlock all\n")    ;
  839.       }
  840.     else
  841.       {
  842.     if(l>0)
  843.      {
  844.         pr("do rlock24\n")    ;
  845.         fprintf(fp,"replace %s with %c->%s\n", lname[s[l-1]], s[l-1]+64, lname[s[l-1]])    ;
  846.         pr("unlock all\n")    ;
  847.      }
  848.       } **/
  849.     if(l>=1)
  850.     {
  851. /*    pr("else\n")    ;*/
  852.       row=rowctc;
  853.       for(ll=llb;ll<mycon->NN;ll++)
  854.     {  if(mylink->MAR[s[l]-1][ll]==1)
  855.           {
  856.          fprintf(fp,"@%d,%d say %s\n",row,col,mycon->field[ll])    ;
  857.          if ((code==1)&&(mycon->ftype[ll]=='C'))
  858.             fprintf(fp," do codep with %d,%d,'%s',%s,'%d'\n",row,col,\
  859.                        mycon->field[ll],mycon->field[ll],l+1);
  860.          if(col==45)
  861.            if(row>19)
  862.               {
  863.             if(ll==(mycon->NN-1))
  864.               {llb=0;lb=l+1;}
  865.             else {lb=l;llb=++ll;}
  866.             break;
  867.               }
  868.            else {row+=2;col=15;}
  869.          else col+=30;
  870.           }
  871.     }
  872. /*  if (l!=0) fprintf(fp,"endif\n");*/
  873.   }
  874.   if(ll!=mycon->NN) break;
  875.   else llb=0;
  876.  }
  877.    if(m&&l!=j&&ll!=mycon->NN)
  878.      pr("clear \n");
  879.  }
  880. pr("yy=' '\n");
  881. pr("@24,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
  882. pr("if yy='y'.or. yy='Y'\n");
  883. pr("w=.f.\n");
  884. pr("endif\n");
  885.  
  886. pr("@24,0 say SPACE(80)\nenddo\nsele 1\nreturn\n");
  887. fclose(fp);
  888. }
  889.  
  890.  
  891.  
  892.  
  893.  
  894. ldata(lookname,j,s,k)
  895. char *lookname;
  896. int j,k,*s;
  897. {  int ll,l,la,lla,m,row,col;
  898.    FILE *fp;
  899.    CONTENT *mycon;
  900.    LINK *mylink;
  901.    mylink=flink;
  902. /*   while(mylink->no!=k)
  903.      mylink=mylink->next;*/
  904.     la=0;m=1;lla=0;
  905.     fp=fopen(lookname,"w");
  906.     while(m)
  907.       {  row=4;  col=15;
  908.      for(l=la;l<j;l++)
  909.        {
  910.              mycon=fcon;
  911.          while(mycon->no!=(s[l]-1))
  912.          mycon=mycon->next;
  913.          fprintf(fp,"select %d \n",l+1);
  914.          for(ll=lla;ll<mycon->NN;ll++)
  915.         {
  916.           if(mylink->MAR[s[l]-1][ll]==1)
  917.             {
  918.                fprintf(fp,"@%d,%d say '%s'\n",row,col-5,mycon->field[ll]);
  919.                fprintf(fp,"@%d,%d say %s\n",row+1,col,mycon->field[ll]);
  920.                  if ((code==1)&&(mycon->ftype[ll]=='C'))
  921.                        fprintf(fp," do codep with %d,%d,'%s',%s,'%d'\n",row+1,col,\
  922.                     mycon->field[ll],mycon->field[ll],l+1);
  923.                if(col==45)
  924.                if(row>19)
  925.                 { if(ll==(mycon->NN-1))
  926.                    {lla=0;la=l+1;}
  927.                   else {la=l;lla=++ll;}
  928.                   break;
  929.                  }
  930.                 else {row+=2;col=15;}
  931.             else col+=30;
  932.               }
  933.         }
  934.                if(ll!=mycon->NN) break;
  935.                else lla=0;
  936.              }
  937.         if(l==j)
  938.            m=0;
  939. /*        if(m==0)
  940.            {*/
  941.             pr("yy=' '\n");
  942.             pr("@24,0 say '░┤╚╬╥Γ╝ⁿ┐┤╞Σ╦ⁿ╫╓╢╬╓╡' get yy\n");
  943.             pr("read\n");
  944.             pr("clear\n");
  945. /*           }*/
  946.         }
  947.         pr("sele 1\nreturn\n");
  948.         fclose(fp);
  949.   }
  950.  
  951.  
  952.