LinuxSir.cn,穿越时空的Linuxsir!

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

中文名:有没办法按笔画/按笔画数排列

[复制链接]
发表于 2009-3-19 23:33:06 | 显示全部楼层 |阅读模式
平时都使用的是按拼音排列,但最近有些事情,需要按笔画/按笔画数来排列,一时之间找不到任何方法,好像win下面也没这方面的软件?????

有什么好办法?
发表于 2009-3-20 06:48:06 | 显示全部楼层
九方输入法,win 的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2009-3-20 10:55:28 | 显示全部楼层
哈哈哈,不是要笔画输入法,骨头误会了……人家想按文件名的笔画数来排列顺序
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-21 05:38:34 | 显示全部楼层
文件名能够按拼音排序,为什么可以呢?通过什么方式实现呢?比较感兴趣
回复 支持 反对

使用道具 举报

发表于 2009-3-21 11:19:51 | 显示全部楼层
中文字库内部汉字的排列是以汉字的拼音声母为序加韵母顺序排列的,整个字库将汉字分为若干区,每区下的每个汉字分别设为一个位,这样每一个汉字可以依据该汉字在字库中的区位位置来确定该汉字的拼音了。而在同声母同韵母情况下,汉字又是以笔划为序的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-21 16:31:19 | 显示全部楼层
是不是可以按其weight来变相实现按笔画数排列呢?
回复 支持 反对

使用道具 举报

发表于 2009-3-21 19:42:50 | 显示全部楼层
找一个笔画输入法的库,对每个字的笔画进行统计,然后做成一个库,基于这个库对汉字进行排序即可。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-21 14:52:11 | 显示全部楼层
刚刚看到,oracle9i可以实现这个功能:
Oracle9i之前,中文是按照二进制编码进行排序的。在oracle9i中新增了按照拼音、部首、笔画排序功能。

1、设置NLS_SORT参数值
      SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
      SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
      SCHINESE_PINYIN_M 按照拼音排序

2、Session级别的设置,修改ORACLE字段的默认排序方式:
      按拼音:alter session set nls_sort = SCHINESE_PINYIN_M;
      按笔画:alter session set nls_sort = SCHINESE_STROKE_M;
      按偏旁:alter session set nls_sort = NLS_SORT=SCHINESE_RADICAL_M;

3、语句级别设置排序方式:
      Oracle按照笔划排序
      Select * From [tablename] order By nlssort(colname,'NLS_SORT=SCHINESE_STROKE_M');
      Oracle按照部首排序
      Select * From [tablename] order By nlssort(colname,'NLS_SORT=SCHINESE_RADICAL_M');
      Oracle按照拼音排序
      Select * From [tablename] order By nlssort(colname,'NLS_SORT=SCHINESE_PINYIN_M');

4、修改系统参数(数据库所在操作系统):
      set NLS_SORT=SCHINESE_RADICAL_M ;export NLS_SORT (sh)
      setenv NLS_SORT SCHINESE_RADICAL_M (csh)
      HKLC\SOFTWARE\ORACLE\home0\NLS_SORT (win注册表)
回复 支持 反对

使用道具 举报

发表于 2009-4-21 15:14:16 | 显示全部楼层
我想要按结构排序的,比如说单人旁的在一堆,双人旁的在一堆。
回复 支持 反对

使用道具 举报

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

本版积分规则

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