📄 jian-h2.c
字号:
//********************************************
//文件名:JIAN-H2.C
//功能:建立汉字库头文件
//********************************************
#include<stdio.h> //1.
#include<string.h> //2
void main() //3.
{ //4.
unsigned char *str="输入出需要查找的文件名" //5.定义字符串
"已经存在继续吗没有到柱面磁头扇区编号获得" //6.
"帮助程序使用方法错误十六进制和或字符显示" //7.
"数据打开失败备份拷贝搬移写清零源第节总算术" //8.
"是否去盘辑按键退出建立多少大小上下一二个块" //9.
"复起始终止存储主引导每簇目录登记项分配表整" //10.
"余占扩展基本该当前运行重新道向后将时增减" //11.增加了部分汉字
"比较任何中不同相等加解密钥锁请看" //
"ABCDEFGHIJKLMNOPQRST" //12.
"UVWXYZ1234567890,。!+-" //13.
":/.()?〖〗\"; //14.
unsigned k,l; //15.
unsigned char c; //16.
int i,j; //17.
int qu,wei; //18.定义区码和位码变量
long sp; //19.
FILE *fp,*hzlib; //20.
l=strlen(str); //21.取字符串长度
fp=fopen("hzku2.h","w"); //22.以写方式打开头文件
fprintf(fp,"unsigned sb[%u]={\n",l/2); //23.将汉字个数写入一维数组
j=1; //24.
while(*str) //25.
{ //26.
k=*str+(*(str+1))*256; //27.取机内码两字节的正整数值
str=str+2; //28.指针移到下一个汉字
printf("%u\n",k); //29.显示汉字特征值
if(j<l/2) //30.
fprintf(fp,"%u,",k); //31.将特征值写入头文件
else //32.
fprintf(fp,"%u};\n",k); //33.
if(j%8==0) //34.写入8个值换行
fprintf(fp,"\n"); //35.
j++; //36.
} //37.
str=str-l; //38.调整字符串指针
fprintf(fp,"unsigned buff[%u][32]={\n",l/2); //39.将汉字个数写入二维数组
hzlib=fopen("hzk16","rb"); //40.打开标准字库
j=1; //41.
while(*str) //42.
{ //43.
fprintf(fp,"{"); //44.
qu=*str-0xa0; //45.换算区码
wei=*(str+1)-0xa0; //46.换算位码
sp=(qu-1)*94+wei-1; //47.算位移值
sp*=32; //48.
fseek(hzlib,(long)sp,0); //49.移动文件指针到汉字处
for(i=1;i<32;i++) //50.
{ //51.
c=fgetc(hzlib); //52.读取字模
fprintf(fp,"0x%x,",c); //53.将字模写入二维数组
if(i%8==0) //54.写入8个值换行
fprintf(fp,"\n"); //55.
} //56.
c=fgetc(hzlib); //57.
if(j<l/2) //58.
fprintf(fp,"0x%x},\n\n",c); //59.
else //60.
fprintf(fp,"0x%x}\n",c); //61.
str=str+2; //62.指针移到下一个汉字
j++; //63.
} //64.
fprintf(fp,"};"); //65.
fclose(fp); //66.关闭文件
fclose(hzlib); //67.
} //68.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -