home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a014 / 1.ddi / CDBINC.EXE / DATA.C < prev    next >
Encoding:
C/C++ Source or Header  |  1991-10-07  |  7.0 KB  |  257 lines

  1. #include <stdio.h>
  2. #define pr(x) fprintf(fp,x)
  3. typedef struct bb{
  4.          char MEAN[21],DB[9],KEY[4][11],COFLAG,COPATH[11];
  5.          int no;
  6.          struct bb *next;
  7.         }BASE;
  8. typedef struct cc {
  9.          char field[128][11],ftype[128];
  10.          int len1[128];
  11.                  int NN;
  12.          int no;
  13.          struct cc *next;
  14.            }CONTENT;
  15. typedef struct ll {
  16.             int  MAR[6][128];
  17.             int  no;
  18.             struct ll *next;
  19.             }LINK;
  20. extern LINK *flink;
  21. extern BASE *fbase;
  22. extern CONTENT *fcon;
  23. extern int NB,repeat,I,J,linkflag,code;
  24. extern int coflag[10]    ;
  25. extern char lname[5][31],PATH[31];
  26.  
  27. lorecord(j,k,fp)
  28. int j,k;
  29. FILE *fp;
  30. { int l;
  31.   pr("goon=.t.\n");
  32.   for(l=1;l<j;l++)
  33.       {  fprintf(fp,"select %d\n",l+1);
  34.          pr("if eof()\nselect 1\nskip\nloop\nendif\n");
  35.       }
  36. }
  37.  
  38.  
  39. min_data(int j,int k,FILE *fp,int *s,char *aarr)
  40. { int l,ll,la,lla,lb,llb,m,col,row,i;
  41.   char echo_len[260]    ;
  42.   int temp    ;
  43.   LINK *mylink;
  44.   BASE *mybase;
  45.   CONTENT *mycon;
  46.   la=0;m=1;lla=0;
  47.        lb=0;llb=0;
  48.        mylink=flink;
  49. /*       while(mylink->no!=k)
  50.         mylink=mylink->next;*/
  51.            while(m)
  52.          {  row=4;  col=15;
  53.         for(l=la;l<j;l++)
  54.             { fprintf(fp,"select %d \n",l+1);
  55.               mycon=fcon;
  56.               mybase=fbase;
  57.               while (mybase->no!=(s[l]-1)) mybase=mybase->next;
  58.               while (mycon->no!=(s[l]-1)) mycon=mycon->next;
  59. /*             {
  60.                 mybase=mybase->next;
  61.                 mycon=mycon->next;
  62.              }*/
  63.               for(ll=lla;ll<mycon->NN;ll++)
  64.             {  if(mylink->MAR[s[l]-1][ll]==1)
  65.                   {  fprintf(fp,"@%d,%d say '%s'\n",row,col-5,mycon->field[ll]);
  66.                  fprintf(fp,"@%d,%d say %s\n",row+1,col,mycon->field[ll]);
  67.                  if ((code==1)&&(mycon->ftype[ll]=='C'))
  68.                     fprintf(fp,"do codep with %d,%d,'%s',%s,'%d'\n",row+1,col,\
  69.                     mycon->field[ll],mycon->field[ll],l+1);
  70.                  if(col==45)
  71.                     if(row>21)
  72.                       { if(ll==(mycon->NN-1))
  73.                       {lla=0;la=l+1;}
  74.                     else {la=l;lla=++ll;}
  75.                     break;
  76.                        }
  77.                     else {row+=2;col=15;}
  78.                   else col+=30;
  79.                 }
  80.             }
  81.                if(ll!=mycon->NN) break;
  82.                else lla=0;
  83.              }
  84.         if(l==j)
  85.            m=0;
  86.         row=5;col=15;
  87.         for(l=lb;l<j;l++)
  88.             {
  89.                       mycon=fcon;
  90.               mybase=fbase;
  91.               while (mybase->no!=(s[l]-1)) mybase=mybase->next;
  92.               while (mycon->no!=s[l]-1) mycon=mycon->next;
  93. /*             {
  94.                 mybase=mybase->next;
  95.                 mycon=mycon->next;
  96.              }*/
  97.               if (l>0)
  98.              {
  99.              if (linkflag==0) fprintf(fp,"sele 1\n");
  100.              else fprintf(fp,"sele %d\n",l);
  101.              fprintf(fp,"reccur=recno()\ngo top\ngo reccur\n");
  102.              }
  103.               fprintf(fp,"select %d \n",l+1);
  104.               if (l>0) fprintf(fp,"if .not.eof()\n");
  105.       for(ll=llb;ll<mycon->NN;ll++)
  106.     {  if(mylink->MAR[s[l]-1][ll]==1)
  107.           {
  108.          if(mybase->COFLAG == 'y'  || mybase->COFLAG == 'Y')
  109.           {
  110.             switch( mycon->ftype[ll] )
  111.               {
  112.             case 'C':
  113.                 for(i=0; i<mycon->len1[ll]; i++)
  114.                     echo_len[i]='X'    ;
  115.                 echo_len[i]='\0'    ;
  116. /*****                fprintf(fp,"%sbak=space(%d)\n",  mycon->field[ll], mycon->len1[ll])    ;*****/
  117.                 fprintf(fp,"%sbak=%s\n",  mycon->field[ll], mycon->field[ll])    ;
  118.                 fprintf(fp,"@%d,%d get %sbak picture '%s'\n",row,col,mycon->field[ll], echo_len)    ;
  119.                 break    ;
  120.  
  121.             case 'N':
  122.                 for(i=0; i<mycon->len1[ll]; i++)
  123.                     echo_len[i]='9'    ;
  124.                 echo_len[i]='\0'    ;
  125. /****                fprintf(fp,"%sbak=%s\n", mycon->field[ll], echo_len)    ;******/
  126.                 fprintf(fp,"%sbak=%s\n", mycon->field[ll], mycon->field[ll])    ;
  127.                 fprintf(fp,"@%d,%d get %sbak picture '%s'\n",row,col,mycon->field[ll], echo_len)    ;
  128.                 break    ;
  129.  
  130.             case 'D':
  131. /***                fprintf(fp,"%sbak=ctod('01/01/01')\n", mycon->field[ll])    ;*****/
  132.                 fprintf(fp,"%sbak=%s\n", mycon->field[ll],mycon->field[ll])    ;
  133.                 fprintf(fp,"@%d,%d get %sbak picture '@D'\n",row,col,mycon->field[ll])    ;
  134.                 break    ;
  135.  
  136.             case 'L':
  137.                 fprintf(fp,"if %s\n", mycon->field[ll] )    ;
  138. /****                fprintf(fp," %sbak=.T.\n", mycon->field[ll] )    ;****/
  139.                 fprintf(fp," %sbak=%s\n", mycon->field[ll],mycon->field[ll] )    ;
  140.                 fprintf(fp," else\n %sbak=.F.\nendif\n", mycon->field[ll])    ;
  141.                 fprintf(fp,"@%d,%d get %sbak picture '!'\n",row,col,mycon->field[ll])    ;
  142.                 break    ;
  143.               }
  144.           }
  145.          else
  146.             fprintf(fp,"@%d,%d get %s\n",row,col,mycon->field[ll])    ;
  147.          if ((code==1)&&(mycon->ftype[ll]=='C'))
  148.             fprintf(fp," do codep with %d,%d,'%s',%s,'%d'\n",row,col,\
  149.                        mycon->field[ll],mycon->field[ll],l+1);
  150.          if(col==45)
  151.            if(row>19)
  152.               {
  153.             if(ll==(mycon->NN-1))
  154.               {llb=0;lb=l+1;}
  155.             else {lb=l;llb=++ll;}
  156.             break;
  157.               }
  158.            else {row+=2;col=15;}
  159.          else col+=30;
  160.           }
  161.     }
  162.     pr("read\n")    ;
  163.     if( mybase->COFLAG == 'Y' ||mybase->COFLAG == 'y')
  164.       {
  165.     pr("do rlock24\n")    ;
  166.     for( temp=0; temp<mycon->NN; temp++)
  167.      if(mylink->MAR[s[l]-1][temp] == 1)
  168.        fprintf(fp,"    replace %s with %sbak\n",mycon->field[temp],mycon->field[temp])    ;
  169.     if(l>0)
  170.         fprintf(fp, " replace %s with %c->%s\n", lname[l-1], s[l-1]+64, lname[l-1])    ;
  171.     pr("unlock all\n")    ;
  172.       }
  173.      if(ll!=mycon->NN) break;
  174.      else llb=0;
  175.  }
  176.         if(m)
  177.           pr("clear \n");
  178.         }
  179.         if (l>1)  pr("endif\n")    ;
  180.         pr("yy=' '\n");
  181.         pr("@24,0 say '─·─▄╚╖╚╧┬≡ ?   (Y/N) ' get yy\nread\n");
  182.         pr("if yy='y'.or. yy='Y'\n");
  183.         pr("w=.f.\n");
  184.         pr("endif\n");
  185.         pr("@24,0 say space(80)\nenddo\n");
  186.         pr("endif\nselect 1\n");
  187.         pr("skip\n");
  188.         pr("enddo\n");
  189. }
  190.  
  191.  dlook(FILE *fp,int *s,int k,int j)
  192. { int la,lla,m,row,col,ll,l;
  193.   int i    ;
  194.   BASE *mybase;
  195.   CONTENT *mycon;
  196.   LINK *mylink;
  197.   la=0;m=1;lla=0;
  198.        while(m)
  199.          {  row=4;  col=15;
  200.         for(l=la;l<j;l++)
  201.             {
  202.               fprintf(fp,"select %d \n",l+1);
  203.               if(l>0)
  204.             fprintf(fp,"if .not.eof()\n")    ;
  205.                       mycon=fcon;
  206.               mybase=fbase;
  207.               while (mybase->no!=(s[l]-1)) mybase=mybase->next;
  208.               while (mycon->no!=s[l]-1) mycon=mycon->next;
  209. /*              while (mybase->no!=(s[l]-1))
  210.              {
  211.                 mybase=mybase->next;
  212.                 mycon=mycon->next;
  213.              }*/
  214.               for(ll=lla;ll<mycon->NN;ll++)
  215.             {
  216.                 fprintf(fp,"@%d,%d say '%s'\n",row,col-5,mycon->field[ll]);
  217.                 fprintf(fp,"@%d,%d say %s\n",row+1,col,mycon->field[ll]);
  218.                  if ((code==1)&&(mycon->ftype[ll]=='C'))
  219.                     fprintf(fp,"do codep with %d,%d,'%s',%s,'%d'\n",row+1,col,\
  220.                     mycon->field[ll],mycon->field[ll],l+1);
  221.                if(col==45)
  222.                 if(row>21) {if(ll==(mycon->NN-1)) {lla=0;la=++l;}
  223.                     else{la=l;lla=ll+1;}
  224.                     break;
  225.                     }
  226.                 else {row+=2;col=15;}
  227.                else col+=30;
  228.             }
  229. /******              if(l>0)
  230.             pr("endif\n")    ;       ********/
  231.               if(ll!=mycon->NN) break;
  232.               else lla=0;
  233.              }
  234.         if(l==j)
  235.            m=0;
  236.         if(m)
  237.         {   pr("p=' '\n@24,0 say '╟δ░┤╚╬╥Γ╝ⁿ┐┤╞Σ╦ⁿ╫╓╓╡ : ' get p\nread\n");
  238.             pr("k=4\ndo while k<25\n@k,0 say space(80)\n");
  239.             pr("k=k+1\nenddo\n");
  240.         }
  241.         }
  242.         pr("yy=' '\n");
  243.         pr("@24,0 say '─·─▄╚╖╚╧┬≡ ? (Y/N) ' get yy picture '!'\nread\n");
  244.         pr("if yy='y'.or. yy='Y'\n");
  245. /*        for(i=0; s[i]; i++)
  246.           {*/
  247.         fprintf(fp, "select %d\n", 1)    ;
  248.         pr("delete\n")    ;
  249. /*          }*/
  250.         pr("endif\n");
  251.         pr("@24,0 say space(80)\n");
  252.         pr("endif\nselect 1\n");
  253.         pr("skip\n");
  254.         pr("enddo\n");
  255. }
  256.  
  257.