⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbcs_prn.c

📁 BC3.1编译,小交换机计费系统.使用Dos做出如此好的界面,少有.
💻 C
📖 第 1 页 / 共 2 页
字号:
             return FALSE;
        }
        if((prn_ch(8))==FALSE)
        {
             buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
             return FALSE;
        }
        if((prn_ch('\n'))==FALSE)
        {
             buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
             return FALSE;
        }
        if((prn_ch(27))==FALSE)
        {
             buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
             return FALSE;
        }
        if((prn_ch('*'))==FALSE)
        {
             buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
             return FALSE;
        }
        if((prn_ch(1))==FALSE)
        {
             buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
             return FALSE;
        }
        if(id==1)
        {
            if((prn_ch(length*16%256))==FALSE)
            {
                buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                return FALSE;
            }
            if((prn_ch(length/16))==FALSE)
            {
                buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                return FALSE;
            }
        }
        else
        {
            if((prn_ch(length*8%256))==FALSE)
            {
                buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                return FALSE;
            }
            if((prn_ch(length/32))==FALSE)
            {
                buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                return FALSE;
            }
        }
    }
    while (j<length)
    {
        if(p1[j]!='A')
        {
            for (i=0;i<16;i++)
            {
                if((prn_ch(p3[i1*32+i+16]))==FALSE)
                {
                     buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                     return FALSE;
                }
                if(id==1)
                {
                    if((prn_ch(p3[i1*32+i+16]))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                }
            }
            i1+=1;
            j+=2;
        }
        else
        {
            for (i=0;i<8;i++)
            {
                if((prn_ch(p4[i2*8+i]))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(id==1)
                {
                    if((prn_ch(p4[i2*8+i]))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                }
           }
           i2+=1;
           j+=1;
       }
    }
    if(id_re==1)
        if((prn_ch('\n'))==FALSE)
        {
            buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
            return FALSE;
        }
    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
    return TRUE ;
}


void rtn_recon(UC *st, UI length, UC *p1)
{
    UI i=0;
    while(i<length)
    {
        if(st[i]=='\n')
        {
            p1[i]='C';
            i+=1;
        }
        else
        {
            p1[i]='A';
            i+=1;
        }
    }
    return;
}

/*Get the lib. file for chinese characters, and change into the print array */
void getlib_24char(int num, UC* p, UC* pc2)
{
    FILE *fp1;
    int m,x,y,j1,i;
    long int k;
    UC *p1;

    p1=malloc(72*sizeof(UC));
    if((fp1=fopen("gfsdata\\cclib24.lib","r+b"))==NULL)
    {
        printf("Error: Cann't open DBCS library file!\n");
        exit(0);
    }
    i=0;
    while(i<num)
    {
        y=p[2*i]-160;
        x=p[2*i+1]-160;
        m=(y-1)*94+(x-1);
        k=(long)m*(long)72;
        fseek(fp1,k*sizeof(UC),SEEK_SET);
        fread(p1,sizeof(UC),72,fp1);
        for(j1=0;j1<72;j1++)
        pc2[72*i+j1]=p1[j1];
        i=i+1;
    }
    fclose(fp1);
    free(p1);
    return;
}


/*Get the lib. file for ASCII characters, and change into the print array */
void getlib_24asc(int num, UC* p, UC* pa2)
{
    FILE *fp1;
    int m,j1,i;
    long int k;
    UC *p1, *p2;

    p1=malloc(16*sizeof(UC));
    p2=malloc(16*sizeof(UC));
    if((fp1=fopen("gfsdata\\asc16.lib","r+b"))==NULL)
    {
        printf("Error: Cann't open SBCS library file!\n");
        exit(0);
    }
    i=0;
    while(i<num)
    {
        m=p[i];
        k=(long)m*(long)16;
        fseek(fp1,k*sizeof(UC),SEEK_SET);
        fread(p1,sizeof(UC),16,fp1);
        pch_24(p1,p2);
        for(j1=0;j1<16;j1++)
            pa2[16*i+j1]=p2[j1];
        i=i+1;
    }
    fclose(fp1);
    free(p1);
    free(p2);
    return;
}


void pch_24(UC *pp1, UC *qq1)
{
   int i,j,k,m,n;
   UC tt,tt1;
   UC d[8]={128,64,32,16,8,4,2,1};

   k=0;
   for(m=0;m<2;m++) /*for upper and below level */
   {
       n=m*8;
       {
           for(i=0;i<8;i++) /* for binary no 0...7 */
           {
               tt1=0;
               for(j=0;j<8;j++) /* for byte no  0...7 */
               {
                  tt=d[i];
                  if((pp1[j+n]&tt) !=(char)0)
                  {
                      tt=d[j];
                      tt1=tt1|tt;
                  }
               }
               qq1[k]=tt1;
               k=k+1;
           }
       }
   }
   return;
}


UC pin24(int id, UC *fbuff, UI length)
{
    UC *p1,*p2;
    int i,ik;

    p1=malloc(200*sizeof(UC));
    p2=malloc(200*sizeof(UC));

    ik=0;
    rtn_recon(fbuff,length,p1);
    for(i=0;i<length;i++)
    {
        p2[ik]=fbuff[i];
        ik=ik+1;
        if((p1[i]=='C')||(i==length- 1))
        {
            if(prn_24cs(id,p2,ik) == FALSE)
            {
               free(p1);
               free(p2);
               return FALSE;
            }
            ik=0;
        }
    }
    free(p1);
    free(p2);
    return TRUE;
}


UC  prn_24cs(int id, UC *st, UI length)
{
    int i, j, j1=0, num_c=0, i1=0, i2=0, id_re=0;
    UC *p1, *p2_c, *p3, *p2_a, *p4, p5=0x00;

    if((p1=malloc(length*sizeof(UC)))==NULL)
        return FALSE;
    if((p2_a=malloc(length*sizeof(UC)))==NULL)
    {
        free(p1);
        return FALSE;
    }
    if((p2_c=malloc(length*sizeof(UC)))==NULL)
    {
        free(p1);
        free(p2_a);
        return FALSE;
    }
    str_recon(st,length,p1,p2_c,&num_c,p2_a);
    if(st[length-1]=='\n')
    {
        id_re=1;
        length-=1;
    }
    if(num_c>0)
    {
        if((p3=malloc((num_c*72)*sizeof(UC)))==NULL)
        {
            free(p1);
            free(p2_a);
            free(p2_c);
            return FALSE;
        }
        getlib_24char(num_c,p2_c,p3);
    }
    j1=length-2*num_c;
    if(j1>0)
    {
        if((p4=malloc((j1*16)*sizeof(UC)))==NULL)
        {
            free(p1);
            free(p2_a);
            free(p2_c);
            if(num_c>0)
                free(p3);
            return FALSE;
        }
        getlib_24asc(j1,p2_a,p4);
    }
    j=0;
    i1=0;
    if(length>0)
    {
        if(( prn_ch(27))==FALSE)
        {
            buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
            return FALSE;
        }
        if(( prn_ch('*'))==FALSE)
        {
            buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
            return FALSE;
        }
        if(( prn_ch(39))==FALSE) //39: Tri_density,33:Double_density.
        {
            buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
            return FALSE;
        }
        if(id==1)
        {
            if(( prn_ch(length*24%256))==FALSE)
            {
                buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                return FALSE;
            }
            if(( prn_ch(length*24/256))==FALSE)
            {
                buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                return FALSE;
            }
        }
        else
        {
           if(( prn_ch(length*12%256))==FALSE)
           {
               buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
               return FALSE;
           }
           if(( prn_ch(length*12/256))==FALSE)
           {
               buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
               return FALSE;
           }
        }
    }
    while (j<length)
    {
        if(p1[j]!='A')
        {
            for (i=0;i<24;i++)
            {
                if(( prn_ch(p3[i1*72+3*i]))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(( prn_ch(p3[i1*72+3*i+1]))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(( prn_ch(p3[i1*72+3*i+2]))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(id==1)
                {
                    if(( prn_ch(p3[i1*72+3*i]))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                    if(( prn_ch(p3[i1*72+3*i+1]))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                    if(( prn_ch(p3[i1*72+3*i+2]))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                }
           }
           i1+=1;
           j+=2;
        }
        else
        {
            for (i=0;i<2;i++)
            {
                if(( prn_ch(p5))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(( prn_ch(p5))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(( prn_ch(p5))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(id==1)
                {
                    if(( prn_ch(p5))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                    if(( prn_ch(p5))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                    if(( prn_ch(p5))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                }
            }
            for (i=0;i<8;i++)
            {
                if(( prn_ch(p5))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(( prn_ch(p4[i2*16+i]))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(( prn_ch(p4[i2*16+i+8]))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(id==1)
                {
                    if(( prn_ch(p5))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                    if(( prn_ch(p4[i2*16+i]))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                    if(( prn_ch(p4[i2*16+i+8]))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                }
            }
            for (i=0;i<2;i++)
            {
                if(( prn_ch(p5))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(( prn_ch(p5))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(( prn_ch(p5))==FALSE)
                {
                    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                    return FALSE;
                }
                if(id==1)
                {
                    if(( prn_ch(p5))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                    if(( prn_ch(p5))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                    if(( prn_ch(p5))==FALSE)
                    {
                        buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
                        return FALSE;
                    }
                }
            }
            i2+=1;
            j+=1;
         }
    }
    if(id_re==1)
    {
        if(( prn_ch(27))==FALSE)
        {
            buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
            return FALSE;
        }
        if(( prn_ch('A'))==FALSE)
        {
            buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
            return FALSE;
        }
        if(( prn_ch(8))==FALSE)
        {
            buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
            return FALSE;
        }
        if(( prn_ch('\n'))==FALSE)
        {
            buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
            return FALSE;
        }
    }
    buffree(p1, p2_a, p2_c, p3, p4, num_c, j1);
    return TRUE ;
}

void buffree(UC *p1, UC *p2_a, UC *p2_c, UC *p3, UC *p4, int num_c, int j1)
{
    free(p1);
    free(p2_a);
    free(p2_c);
    if(num_c>0)
        free(p3);
    if(j1>0)
        free(p4);
    return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -