排序问题 ( 积分: 100 )

  • 主题发起人 主题发起人 常广荣
  • 开始时间 开始时间

常广荣

Unregistered / Unconfirmed
GUEST, unregistred user!
有一堆数值如1,1.1,1.2.1.3,1.2,1.10,1.1.1,1.2.1
要求排序后
1,1.1,1.1.1,1.2,1.2.1,1.3,1.1.10
摆脱了
 
1.1.10 ?

放最后?
 
写错了
应该是1,1.1,1.1.1,1.2,1.2.1,1.3,1.10
 
没见过有两个小数点的“数值”啊,楼主的排序对象应该是字符串吧? :)
将这些字符串中的数字变换成单字节字符就可以进行排序了——排好了后再反向转换为原
格式的字符串即可。
转换规则为:将字符串按照"."分割为若干个数字字符串,将其变换为对应整数的ASCII码
值组成新的字符串(例如:1 -> #1, 1.2.1 -> #1#2#1, 1.10 -> #1#10)。由于每一段数
字最终都变成了一个字符(只要不大于255,呵呵),所以就不会出现十进制的错位问题。
思路已经说了,至于具体的拆分编码、恢复算法,不难写——利用StringList的Delimiter
以及DelimitedText属性就可以轻松搞定,我就不写了。 :P
 
是2.1大还是1.10大,如果是1.10大,把小数字去掉再比较就可以了
 
楼主排序的好象是版本号
 
不是版本号啊,是BOM单
 
后退
顶部