打印

学习:求一个简洁的C语言汉字字模查表显示程序

[复制链接]
12489|47
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kuernikewa|  楼主 | 2008-8-22 16:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lion197| | 2008-8-22 17:22 | 只看该作者

去看晓奇的吧!非常经典

使用特权

评论回复
板凳
chongxing| | 2008-8-23 02:02 | 只看该作者

用的什么芯片啊,什么显示器啊,都没有啊。

使用特权

评论回复
地板
kuernikewa|  楼主 | 2008-8-23 09:49 | 只看该作者

re

51单片机,点阵LCD显示

使用特权

评论回复
5
kuernikewa|  楼主 | 2008-8-23 09:55 | 只看该作者

re

4楼用的是结构体吧,不错!好像和数组差不多
有没有哪位大哥用指针做过,好像效率更高点哦!

使用特权

评论回复
6
电子尘埃| | 2008-8-23 10:55 | 只看该作者

那是晓奇写的

我还不会用呢.我现在就想找到一个方法.
如自制一个汉字点阵.GB_16[] ={
.................,//32个字节一个汉字设为"国".
.................,//32个字节一个汉字设为"家".
.
.
.
.
.
.
//很多个汉字.
}
我以前用的方法也是最笨的方法.如要引用"国"就是GB_16[0],"家"用GB_16[32];
假如有80多个汉字的话.GB_16[这里的数字就晕住了.根本就不知道是什么汉字,对后期维护很难],用宏定义成拼音,可俺拼音也不好.
现求高手支一高招.

使用特权

评论回复
7
电子尘埃| | 2008-8-23 10:58 | 只看该作者

能把[]里的数字与汉字联系上

使用特权

评论回复
8
xwj| | 2008-8-23 11:01 | 只看该作者

唉,很多字模软件都能生成索引,自己去仔细看下文件就会

比如晓奇的,比如HZDotReader

使用特权

评论回复
9
hotpower| | 2008-8-23 11:02 | 只看该作者

看看COM接口技术和C++的封装就很容易实现

使用特权

评论回复
10
电子尘埃| | 2008-8-23 11:14 | 只看该作者

两位大侠,能直接跟我说吗?

我太笨了呀,看了好久也理解不了

使用特权

评论回复
11
电子尘埃| | 2008-8-23 11:20 | 只看该作者

不会是这样吧

不会是在汉字编码前放个汉字内码.然后再做个子函数去找它???????
那岂不是每个汉字又多了两字节与检索代码的代码.这个检索代码应该会是很大吧.
hotpower  "看看COM接口技术和C++的封装就很容易实现"想想都难呀

使用特权

评论回复
12
xwj| | 2008-8-23 11:27 | 只看该作者

自己去下个HZDotReader摸索摸索,也可以不要索引 用宏定义的

使用特权

评论回复
13
电子尘埃| | 2008-8-23 11:32 | 只看该作者

先给个方向,我好摸进去呀.

我先仔细认真的想去先.实在不会的话,在找你噢.你别跑掉不理我.

使用特权

评论回复
14
电子尘埃| | 2008-8-23 14:39 | 只看该作者

xwj 还在吗?

弄了这么长时间还是不会弄呀.
里面自带的说明.有这么一段.
C51:
char c=hzdot[CD6D0];

以上C51例子,把“中”字点阵第1字节赋值给c。A51例子取“中”字点阵第一字节放入累加器A中,如未指定常量增量为汉字字节数,则常量增量为1,需计算后定位。

   为方便你使用小字库,本软件提供HZConvert小工具,用于把汉字转化为常量。这样你可以直接在你的源程序中使用汉字作为常量名,如上例中的源程序可写为如下形式:
C51:
char c=hzdot[中];

CD6D0这个是什么东东,
这个常量是什么??????????????
理解不了呀.

使用特权

评论回复
15
电子尘埃| | 2008-8-23 14:57 | 只看该作者

"CD6D0"与"中"是什么关系.0xd6d0是内码.

"CD6D0"与"中"是什么关系.0xd6d0是内码.可我们程序怎么就知道中就是"CD6D0";这份说明书写的真够高深莫测的.

使用特权

评论回复
16
jack.king| | 2008-8-23 16:50 | 只看该作者

我有一个笨办法记得偏移值就好了

若是16*16的就按照自己建立字库的顺序去找反正每个字都相距32

使用特权

评论回复
17
huangqi412| | 2008-8-23 17:04 | 只看该作者

学习一下

使用特权

评论回复
18
kuernikewa|  楼主 | 2008-8-24 10:43 | 只看该作者

re

这样也可以:
code uchar zhong[]={ 
0x01,0x00,0x01,0x00,0x21,0x08,0x3F,0xFC,
0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,
0x21,0x08,0x3F,0xF8,0x21,0x08,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00};
code uchar wen[]={ 
0x02,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,
0x08,0x20,0x08,0x20,0x08,0x20,0x04,0x40,
0x04,0x40,0x02,0x80,0x01,0x00,0x02,0x80,
0x04,0x60,0x18,0x1E,0xE0,0x08,0x00,0x00};
后面直接用拼音索引

使用特权

评论回复
19
电子尘埃| | 2008-8-24 16:20 | 只看该作者

终于想清楚了.

不管是用结构,还是独立的索引,还是要去查找的.
刚开始还以为高手的能把汉字直接变成一个常量.搞了半天还是输入汉字的的字符.然后对应汉字的机内码,再自已编写子函数.把他找出来.也是个笨方法.

如有人能弄出这样的编译器最方便 #define 汉 (对应的一个常量)

楼上用拼音存在多音字的问题噢

使用特权

评论回复
20
kuernikewa|  楼主 | 2008-8-25 10:31 | 只看该作者

re

始终是要对编码做手脚,终究还是要查表,如果有更好的办法就厉害了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

102

帖子

0

粉丝