微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题显示任意汉字库内容的方法
栏目软件操作与技巧
作者河北 袁津生
发布1993-09-10
  有两种方法可以实现,一种是使用汉字库造字软件CC16A.COM来显示XHZK中的内容,但需要对CC16A.COM进行修改。假改CC16A.COM和DEBUG.COM都在A盘上,修改过程如下:
  A>debug cc16a.com
  -a930
  332A:0930 db"A:XHZK"
  332A:093D
  -W
  Writing 0E00 bytes
  -Q
  修改之后,在DOS提示符下键入:
  A>CC16A<回车>
  就可逐个地显示XHZK中的内容了。
  另一种方法是编制程序来显示任意汉字库中的内容。将下面的程序编译后,在运行时程序首先是提示用户输入需要显示汉字库的路径和名称。显完一屏后按任意键将显示下一屏,直到显示完毕。
  /显示汉字库xshzk.c/
  #include<stdio.h>
  #include<graphics.h>
  #include<conio.h>
  main()
  {
  FILEfp;
  inti,i1,i2,i3,row=0,col=0,
  trow=0;
  int gdriver=DETECT,gmode;
  char by[32];
  long length;
  charf;
  printf("input name of HZK:");
  gets(f);
  if((fp=fopen(f,"rb"))==NULL)
  {
  printf("cantopenfile!");
  exit(0);
  }
  initgraph(&gdriver,&gmode,"")
  /图形模式初始化/
  fseek(fp,0,2);
  length=ftell(fp)/32L;
  /测试汉字库文件的长度/
  fseek(fp,0,SEEK-SET);
  /文件指针定位到汉字字模的首字节/
  for(i=0;i<length;i++){
  if(kbhit()){getch();break;}
  fread(by,32,1,fp);
  (/读汉字模的32个字节/)
  row=trow;
  for(i1=0;i1<16,i1++){
  /显示字模垂直方向16个点/
  for(i2=0;i2<2;i2++)
  /字模水平方向两个字节/
  for(i3=0;i3<8;i3++)
  /水平方向每个字节8位/
  if(getbit(by[i12+i2],7i3))
  /判断该位是否为1/
  putpixel(col+i28+i3,row,GREEN);
  /为1则在相应的位置画点/
  row++;
  }
  col=col+16;
  if(col>470){
  col=0;trow+=20;
  if(trow>450){
  getch();
  cleardevice();
  col=0;trow=0;
  }
  }
  }
  tetch();
  closegraph();
  }
  intgetbit(unsignedcharc,intn)
  {
  return((c>>n)&1);/将字节中的某位移到字节最低位并屏蔽掉其它7位/}
  (河北袁津生)