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

📄 hzcall1.c

📁 比较磁盘扇区的文件文件内容
💻 C
字号:
//********************************************
//文件名:HZCALL1.C
//功能:1. 函数outhz()判断是否为汉字,若是则将
//汉字传给函数disp()处理,若是字符则输出
//      2. 函数disp()调用画点函数输出汉字
//********************************************
#include<GRAPHICS.H>                             //1.
#include"hzku1.h"                                //2.包含字库头文件
int disp(int,int,unsigned char,                  //3.被调用函数声明
         unsigned char,int);                     //4.
int outhz(int x,int y,char *p,int color)         //5.
{                                                //6.
  int oldcolor;                                  //7.
  oldcolor=getcolor();                           //8.取得当前颜色
  setcolor(color);                               //9.
  while(*p)                                      //10.
  {                                              //11.
    if(((unsigned char)*p>=0xa1&&                //12.判断是否为汉字
      (unsigned char)*p<=0xfe)&&                 //13.
      ((unsigned char)*(p+1)>=0xa1&&             //14.
      (unsigned char)*(p+1)<=0xfe))              //15.
    {                                            //16.
      if((x+16-1)>getmaxx()||                    //17.检查最大坐标
         (y+16-1)>getmaxy())                     //18.
	return 0;                                //19.
      disp(x,y,*p,*(p+1),color);                 //20.若是汉字调用显示函数
      p+=2;                                      //21.将指针指向下一个汉字
      x+=16+2;                                   //22.设置水平坐标
      moveto(x,y);                               //23.移动显示位置
    }                                            //24.
    else                                         //25.若不是汉字
    {                                            //26.
      char q[2];                                 //27.字符处理
      moveto(x,y);                               //28.
      *q=*p;                                     //29.
      *(q+1)='\0';                               //30.补结束符
      settextstyle(DEFAULT_FONT,HORIZ_DIR,1);    //31.设置字符显示属性
      outtextxy(x,y+4,q);                        //32.输出字符串(实为字符)
      x+=8+1;  p++;                              //33.
    }                                            //34.
  }                                              //35.
  setcolor(oldcolor);                            //36.设置颜色
  return 1;                                      //37.
}                                                //38.
						 //39.
int disp(int left,int top,unsigned char byte1,   //40.显示汉字函数
         unsigned char byte2,int color)          //41.
{                                                //42.
  unsigned char mark;                            //43.
  unsigned k;                                    //44.
  int y,i,j,m;                                   //45.
  if((byte1>=0xa1&&byte1<=0xfe)&&                //46.检查是否为汉字
    (byte2>=0xa1&&byte2<=0xfe))                  //47.
  {                                              //48.
    k=byte1+byte2*256;                           //49.取机内码两字节16位值
    for(m=0;sb[m]!=0;m++)                        //50.
    {                                            //51.
      if(k==sb[m])                               //52.与汉字特征值比较
        break;                                   //53.若相等则结束比较
    }                                            //54.
    for(i=0,y=top;i<31;i+=2,y++)                 //55.字节循环
      for(mark=0x80,j=0;mark>0;mark=mark>>1,j++) //56.位循环
      {                                          //57.
        if((buff[m][i]&mark)!=0)                 //58.若为1(偶字节)
	  putpixel(left+j,y,color);              //59.显示一个亮点
        if((buff[m][i+1]&mark)!=0)               //60.若为1(奇字节)
          putpixel(left+j+8,y,color);            //61.显示一个亮点
      }                                          //62.
  }                                              //63.
  return 1;                                      //64.
}                                                //65.

⌨️ 快捷键说明

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