北大中文论坛 www.pkucn.com

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
楼主: 路路通

输入法编程漫谈(08-09-07更新)

[复制链接]
发表于 2008-11-3 12:50:00 | 显示全部楼层

回复 75楼 的帖子

“路路通”老师:您好!
    称谓不恭!请见谅!
    感谢你的回复!
    我的输入法,以前是用 输入法生成器 做的,多年来,自我感觉还好。后来,采用     hw  先生改进的输入法生成器,效果更好。只是,它的编码:最多 只有12码。后来,套用过“自由拼音”,码长问题解决了,但是,词库大了,要死机。
    今年,移植到“拼音加加”,效果很好。

    但是,这些 “移植”,都不能满足自己的一个心愿:
    用简单的“程序”,达到“简单易用”的效果。
    自己认为,汉字“输录”,100多年来,之所以成为“问题”,就是因为——汉字,需要一种与 时代 相 适应 的“附件”形式。如果,这种“附件”形式,需要依靠“智能程序”来支撑,那么,这种“附件”形式,就是在“开后辈儿孙的玩笑”!
    我要用自己的这种“搞笑输入法”,来证明这一点!希望能 引起 软件界 的关注!

    您 做的“教学示例程序”,我觉得很好!码长问题解决了,还能输入“超大字符集”里的汉字(在“候选框”不显示字形,但是,可以打出汉字,希望能 指导我完成)。

    我文化不多,“天命”之年,却不知“天命”。
    用中文版 的VC,编译您的“输入法编程入门标准程序.rar”,我没有编译出来。
    我是这样做的:
    点击——srf.dsw 文件,打开VC编译器;
    点击“编译”菜单,再 点击“构建”——srf.ime
      完成“编译”。
      编译结果,显示:没有“错误”和“警告”。
   但是,我始终没有生成 srf.ime ,不知问题在哪里?

      希望得到您的指教!
                              老李 2008,11,3。

[ 本帖最后由 laoli52 于 2008-11-3 12:54 编辑 ]
 楼主| 发表于 2008-11-3 13:26:32 | 显示全部楼层
原帖由 laoli52 于 2008-11-3 12:50 发表
“路路通”老师:您好!
    称谓不恭!请见谅!
    感谢你的回复!
    我的输入法,以前是用 输入法生成器 做的,多年来,自我感觉还好。后来,采用     hw  先生改进的输入法生成器,效果更好。只是,它的编码 ...


“老骥伏枥,志在千里”,为您的精神感动!

老师不敢当,直呼网名即可,一生不想为名利所累。

你已经编译成功。点击project->project settings-link 在Output file nanme中我默认的设置是c:\\winnt\\system32\\srf.ime,就是说生成的ime文件已自动放在这个目录下,你进入这个目录查找一下应该可以找到它。(中文版可能是——工程——工程设置-链接,在输出文件名那个编辑框内)

生成这个文件后,将码表文件、srf.ime、输入法安装文件放在同一个目录下,点击安装,成功后才能使用。这一步你已经完成了可省去。

候选框不能显示大字符集?你安装了相应的字符集和字体了吗?
发表于 2008-11-3 16:45:09 | 显示全部楼层

回复 77楼 的帖子

路路通老师:您好!
    感谢您 的指点!学习没人指点,费力呀!
    我不认识英文,所以,您 写的,我没 看懂。36年前,为迎接“科学的春天”,我还在戈壁滩认得一些,现在,我只认得名字(汉字)了。世事,改造人啦!

    ——“候选框不能显示大字符集?你安装了相应的字符集和字体了吗?”
    我安装了能打7万字的字符集和字体。比如,能用 天下无敌 打出“𠥇”字。但是,候选框,不能显示这个字。
    谢谢!
                            老李 2008,11,3_16:48
 楼主| 发表于 2008-11-3 17:42:10 | 显示全部楼层
原帖由 laoli52 于 2008-11-3 16:45 发表
路路通老师:您好!
    感谢您 的指点!学习没人指点,费力呀!
    我不认识英文,所以,您 写的,我没 看懂。36年前,为迎接“科学的春天”,我还在戈壁滩认得一些,现在,我只认得名字(汉字)了。世事,改造人 ...


𠥇

这个字是4字节的字,不在系统默认的字体范围内。

输入法入门程序提供字体选择,而标准输入法程序没有提供,需要者可参考入门程序的代码加上去。
发表于 2008-11-3 18:03:28 | 显示全部楼层

回复 79楼 的帖子

感谢您 的回复!
我现在还看不懂代码(未入门)。
我先从总体上了解——
冒昧地 问 :
1、py.txt 文件,能够容纳多少词条?
2、码元(a~z),能不能添加“'”?

谢谢!不知您还在网上。
                    老李
 楼主| 发表于 2008-11-3 18:49:15 | 显示全部楼层
原帖由 laoli52 于 2008-11-3 18:03 发表
感谢您 的回复!
我现在还看不懂代码(未入门)。
我先从总体上了解——
冒昧地 问 :
1、py.txt 文件,能够容纳多少词条?
2、码元(a~z),能不能添加“'”?

谢谢!不知您还在网上。
                    ...


1、Win32系统能访问4096M大小的文件,假设词条连索引平均需要64个字节(一般20个字节足够),那么可以容下7千万左右条词条。太大的码表建议用二进制形式保存。
2、码元可以是任意键,只要不与你的功能键冲突。
发表于 2008-11-20 20:38:43 | 显示全部楼层
你好!我想知道有没有一个简单的字库py.txt,包括:简体字,和一些简体字的词汇。谢谢!万望恢复!
发表于 2008-11-20 20:40:34 | 显示全部楼层
对了,我的邮箱是zhaozhhtiger@gmail.com,如果有这样的字库,请发我一份,格式和py.txt中一样:wo3 我  。 万分感谢!!!!
 楼主| 发表于 2008-11-21 21:38:02 | 显示全部楼层
原帖由 zhaozhhtiger 于 2008-11-20 20:38 发表
你好!我想知道有没有一个简单的字库py.txt,包括:简体字,和一些简体字的词汇。谢谢!万望恢复!


字库什么意思?不明白。
发表于 2008-11-26 17:51:36 | 显示全部楼层
路路通你好!
我读你的源程序遇到难题向你请教:
Ddis.c中,最后一个函数BOOL GenerateMessage(UINT message,WPARAM wParam,LPARAM lParam),里面有一句:
                lpIMC->hMsgBuf = ImmReSizeIMCC(lpIMC->hMsgBuf, (lpIMC->dwNumMsgBuf + 1) *  sizeof(DWORD) * 3);
当中那个逗号是什么意思?
发表于 2008-11-26 17:55:19 | 显示全部楼层

我明白了:

是函数的两个参数之间的间隔符。
发表于 2008-11-28 11:06:28 | 显示全部楼层

路路通你好!

我读你的源程序遇到难题向你请教:
mysearch.c中,函数
void * bsearch_lo (
                           const void *key,
                          const void *base,
                           size_t num,
                           size_t width,
                        int (*compare)(const void *, const void *))
的最后一个形参
int (*compare)(const void *, const void *)
是什么意思?
是个函数吗值?是个由指针指向的函数吗?那么这个指针为什么要用括号括起来呢?我猜想不是的,否则怎么调用它呢?而且mb.c中调用它时用的实参是bm_cmp,似乎不像是指针啊。
我没见过这种格式,请指点
发表于 2008-11-28 11:20:12 | 显示全部楼层
我在mb.c中查到bm_cmp是个函数名。但是上面那个问题还是弄不懂。
发表于 2008-11-28 11:26:58 | 显示全部楼层

往下二十几行,有个语句:

result = (*compare)(key,lo);
由此看来(*compare)还真是个函数名。可是函数名用括号括起来,以及用函数作形参,我还是第一次遇到,请指点我到哪里去找有关资料。
 楼主| 发表于 2008-11-28 12:20:09 | 显示全部楼层
这是函数的指针,任何一本基础性的C语言入门书籍都有。

bsearch_lo bsearch_hi是参考C语言的库函数bsearch写的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大中文系 ( 京ICP备12040209号

GMT+8, 2016-3-25 00:59 , Processed in 0.146739 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表