?? 小字庫diy-.c
字號:
小字庫DIY
這里的方法是把龐大的十六點陣字庫(約160kB吧?)中所要用到的幾十個漢字的字模提取出來,存成新的一個小字庫。這樣做的好處是:
1,空間要求小。我下面這個程序得到的xzku.dat只有1kB字節,幾乎縮小了160kB。 在工業控制上有時這點空間是致命的。
2,程序保密,讓人不知所云。
3,實現速度快。主要是fseek語句節省時間,但表現出來的速度快了一半多。
/*MAKE 自造字庫 MAKE*/
main()
{FILE *zkfp, *zk1fp;
unsigned char *s[S_NUMBER];
int len[S_NUMBER], i, j, m;
int qu, wei, l;
long offset;
int a[ZISHU], number = 0, xn;
s[0] = "自造小字庫顯示軟件";
s[1] = "把所用到的漢字字模提取出來重新組成小字庫,";
s[2] = "使用時即可把原字庫拋開。";
s[3] = "愿與各位朋友商榷。";
s[4] = "歡迎常到松鼠之家來";
s[5] = "松鼠拜上。";
zk1fp = fopen("c:\xzku.dat", "wb");
zkfp = fopen("c:\hzk16", "rb");
if (zkfp == NULL) {printf("Can't open the cclib");
exit(0);
}
for(i = 0; i < s_number; i++)
{while(*s[i])
{
qu = *(s[i]++)-0xa0;
wei = *(s[i]++)-0xa0;
l = qu*94+wei;
for(j = 0; j < number&&a[j] != l; j++);
if(j!=number)
continue;
a[number++] = l;
offset = (94l*(qu-1)+(wei-1))*32l;
fseek(zkfp, offset, SEEK_SET);
for(m = 0;m <32;m++)
putc(getc(zkfp), zk1fp);
}
}
fclose(zkfp);
fclose(zk1fp);
printf("\nOK!\n");
}
這僅僅是做小字庫的程序。顯示的程序只要根據這個思路,就能做出來。主要就是用“for(j=0;j < number&&a[j]!=l;j++);”來控制不要有重復的字模。 技巧在于控制兩段程序漢字出現的順序。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -