|
主题: 中文字符的排序问题。
|
syzy
职务:普通成员
等级:1
金币:4.0
发贴:131
|
#12001/12/28 11:38:13
我从文件夹中读取文件名,其顺序是混乱的,我想进行排序,以前是用数组的办法,可以实现。不过我觉得挺麻烦,大家有没有其他更好的办法?
|
吃鱼专家
职务:普通成员
等级:6
金币:11.0
发贴:5312
|
#22001/12/28 13:28:31
如果不是与AW有关的问题,请不要在此发贴,会让人起一头雾水的
|
syzy
职务:普通成员
等级:1
金币:4.0
发贴:131
|
#32001/12/28 13:36:07
就是AW问题。在AW中对中文字符进行排序。读进来的文件名是一个大的字符串,每一行一个文件名,有好的办法使其按拼音顺序排列吗?或者其他顺序也行。
编辑历史:[这消息被syzy编辑过(编辑时间2001-12-28 13:38:30)]
|
吃鱼专家
职务:普通成员
等级:6
金币:11.0
发贴:5312
|
#42001/12/28 14:16:00
你动作真快啊,那我问你是用什么方式读进来的,怎么中文文件名会是一个大的字符串?你的AW是第几版的?
|
syzy
职务:普通成员
等级:1
金币:4.0
发贴:131
|
#52001/12/29 14:41:28
用Catalog("folder" [,"F" | "D"])。哪个版本都一样。
|
吃鱼专家
职务:普通成员
等级:6
金币:11.0
发贴:5312
|
#62002/1/4 9:46:55
弄出来的是文本,又不是字符串,SORRY,我不会
|
与人同乐
职务:管理员
等级:6
金币:18.0
发贴:3928
|
#72002/1/4 12:00:01
SortByvalue(list, 1)基本上是按拼音(内码)排序。
例如a:=a=["王三","王","赵四","李三","abc"] SortByvalue(a, 1)之后就是["abc", "李三", "王", "王三", "赵四"]
|
吃鱼专家
职务:普通成员
等级:6
金币:11.0
发贴:5312
|
#82002/1/4 15:05:24
Y在上个帖子中说 引用: SortByvalue(list, 1)基本上是按拼音(内码)排序。
例如a:=a=["王三","王","赵四","李三","abc"] SortByvalue(a, 1)之后就是["abc", "李三", "王", "王三", "赵四"]
你有没有弄清是什么问题啊? 在不知道有什么东西时怎么排。哪来什么王赵李
|
syzy
职务:普通成员
等级:1
金币:4.0
发贴:131
|
#92002/1/4 22:15:36
Y说的并没错,原来我也是用SortByvalue做的排序,只是需要运用数组。其实我只是想知道有没有函数可以直接获得汉字的内码。谢谢各位的回复!
|
与人同乐
职务:管理员
等级:6
金币:18.0
发贴:3928
|
#102002/1/6 22:25:46
如果最终目标是为了文件名排序的话,查内码似乎复杂了些,比如会有“王二”和“王三”等情况。
用数组反而简单些: aa:=Catalog("c:\\windows" ,"F" | "D") I:=1 list_aa:=Array("",LineCount(aa)) --字符串拆分为数组元素 repeat while I<=LineCount(aa) list_aa[I]:=GetLine(aa,I) I:=I+1 end repeat SortByvalue(list_aa, 1)
--排序后的数组元素合并为字符串 result:="" I=1 repeat while I<=LineCount(aa) result:=result^list_aa[I]^Return I:=I+1 end repeat
result中保存的是排序后的字串。注意Catalog是大小写敏感的,而对文件名排序则不需要区分大小写,因此可以再用upcase处理一下。
|