📄 z16.cpp.bak
字号:
/*************************************
提取单个汉字字模程序 16 dots
修改函数writehz()可以按自己的文件格式生成字库代码文件
作 者: David Wang
Email: wy94081@sina.com.cn
**************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//#include <graphics.h>
#include <conio.h>
#include <dos.h>
void writehz( char *str,char *filename);
void main(void)
{
int len,i;
char *str="样间隔秒请联机加载按键无法结束是否";
char *s;
s=str;
len=strlen(s)/2;
for(i=0;i<len;i++)
{
writehz(s,"my16.c");
s+=2;
}
}
void writehz(char *str,char *filename)
{
FILE *fp1,*fp2;
unsigned char buf[16][2];
unsigned char data1,data2;
char s[2]={0,0};
unsigned short int data;
long offset;
unsigned short int qu,wei,i,j,code;
fp1=fopen("hzk16","rb");
if(fp1==NULL) {
printf("Can't open hzk16!!\n");
exit(0);
}
qu=(*str-0xa1)&0x7f; /* 区号:高字节 */
wei=(*(str+1)-0xa1)&0x7f; /* 位号:低字节 */
//code=(*str-0xa0)*100+(*(str+1)-0xa0);
code=(qu+1)*100+(wei+1);
offset=(long)(qu*94+wei)*32;
fseek(fp1,offset,SEEK_SET);
for(i=0;i<16;i++)
{
for(j=0;j<2;j++)
{
buf[i][j]=fgetc(fp1);
}
}
fp2=fopen(filename,"a+");
if(fp2==NULL) {
printf("Can't create output file!!!\n");
exit(0);
}
fprintf(fp2,"{%d, ",code);
for(i=0;i<16;i++)
{
data1=buf[i][0]&0x00ff;
data2=buf[i][1]&0x00ff;
if(i<15)
{
if(data1<0x10&&data2<0x10)
fprintf(fp2,"0x0%X, 0x0%X, ",data1,data2);
else
if(data1>0x0f&&data2<0x10)
fprintf(fp2,"0x%2X, 0x0%X, ",data1,data2);
else
if(data2>0x0f&&data1<0x10)
fprintf(fp2,"0x0%X, 0x%2X, ",data1,data2);
else
fprintf(fp2,"0x%2X, 0x%2X, ",data1,data2);
}
else
{
if(data1<0x10&&data2<0x10)
fprintf(fp2,"0x0%X, 0x0%X",data1,data2);
else
if(data1>0x0f&&data2<0x10)
fprintf(fp2,"0x%2X, 0x0%X",data1,data2);
else
if(data2>0x0f&&data1<0x10)
fprintf(fp2,"0x0%X, 0x%2X",data1,data2);
else
fprintf(fp2,"0x%2X, 0x%2X",data1,data2);
}
}
strncat(s,str,2);
fprintf(fp2,"}, /* %s */ \n",s);
fclose(fp2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -