LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 754|回复: 6

linux下的输入法需不需要特殊格式的码表文件?

[复制链接]
发表于 2005-5-22 22:49:38 | 显示全部楼层 |阅读模式
这两天我看了fcitx下带的mb2txt转换工具,能把二进制的码表文件成可读的文本文件。txt2mb更为复杂。

我想现在linux下的码表文件是不是使用windows下的格式,只好使用现在的编程方法?在linux下,存取文本文件和二进制文件的速度好像是一样的(no?);如果windows下使用二进制的码表是出于效率的考虑,linux下的输入法还有必要使用复杂的码表格式吗?直接使用文本文件不仅存取方便,用户定制码表也更简单。

请高手给予指点,谢谢!
发表于 2005-5-23 00:18:32 | 显示全部楼层
fcitx的码表格式是自己专用的,应该与windows的不一样。
读取文本文件和二进制文件的速度应该是不一样的吧,当然,速度并不是问题。二进制文件,只是一个选择,用文本文件一样可以实现现在所有的功能
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-23 21:58:36 | 显示全部楼层
我记得unix读取文本文件和二进制文件的速度一样,记不清在那看的了。

如果速度不是问题,用文本文件可以实现现有功能。使用文本格式是不是大大减轻代码的复杂性:
# wc -l txt2mb.c
333 txt2mb.c
txt2mb应是挺简单,也用了3百多行。tables.c我还没读,不知处理码表的代码量有多大。感觉好像是个refactor的好机会。

Yuking认为如何?
回复 支持 反对

使用道具 举报

发表于 2005-5-23 22:56:43 | 显示全部楼层
其实是这样的~~~码表中包含有词频信息,如果做文本文件的话,一个是看上去比较乱,再就是体积可能会大很多,而且速度应该也是不一样的。
程序中读码表的代码量,二进制和文本的差不多……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-23 23:53:42 | 显示全部楼层
root@ubuntu:~/.fcitx # ls -l erbi.mb
-rw-r--r--  1 root root 1715505 2005-05-23 21:57 erbi.mb
root@ubuntu:~/.fcitx # mb2txt erbi.mb > erbi.txt
root@ubuntu:~/.fcitx # ls -l erbi.txt
-rw-r--r--  1 root root 768163 2005-05-23 23:47 erbi.txt

(加上词频信息的话)体积好像可能会差不多?

文本文件即使乱一点,比起二进制格式还是好读许多;特别对于a new developer like me.

>>程序中读码表的代码量,二进制和文本的差不多……
读文本文件的代码可读性会不会稍好?

速度问题我再查查。
回复 支持 反对

使用道具 举报

发表于 2005-5-24 17:32:24 | 显示全部楼层
呵呵,体积的问题是我搞错了……
其实二进制的格式也很简单,可读性不是太差
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-28 21:24:04 | 显示全部楼层
查到了。在UNIX环境高级编程一书中,第41页和95页:“对UNIX内核而言,文本文件和二进制文件并无区别。“还说读写时使用b参数并无作用。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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