netegg 发表于 2012-8-20 23:13:13

回复 15# tryhi
对呀,这个叫什么排序方法,同一字符串,有数字按从右向左,按文字从左向右

Duvet 发表于 2012-8-20 23:13:13

本帖最后由 Duvet 于 2012-8-20 23:35 编辑

**** Hidden Message *****

tryhi 发表于 2012-8-20 23:26:34

回复tryhi
对呀,这个叫什么排序方法,同一字符串,有数字按从右向左,按文字从左向右
netegg 发表于 2012-8-20 23:13 http://www.autoitx.com/images/common/back.gif

不是啊,数字按大小啊,哪有从右向左,像这样
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12

按字符串排不是变成了这样
a1
a10
a11
a12
a2
a3
a4
a5
a6
a7
a8
a9
明显不符合逻辑嘛,我那种排序就不会出现这样

Duvet 发表于 2012-8-20 23:33:57

回复 18# tryhi
還以為我弄錯了...

tryhi 发表于 2012-8-20 23:44:58

**** 本内容被作者隐藏 ****
Duvet 发表于 2012-8-20 23:13 http://www.autoitx.com/images/common/back.gif

17的答案很不错,不过不具备通用性,比如
Local $Array = ['4cxd25df5.6', '4cxd25df25', '45cxd5f18', '45cxd5f5','z','z','z','z','z','z','z','z','z','z','z','z','z','z','z','z','z']

结果就不对了,不过你的方法非常好

Duvet 发表于 2012-8-21 02:02:37

本帖最后由 Duvet 于 2012-8-21 02:10 编辑

**** Hidden Message *****

menfan1 发表于 2012-8-21 10:56:46

看看啥内容?

xlj310 发表于 2012-8-21 15:25:31

这个有点意思,按理说这个入手不是很难,稍微懂点的都能弄出个算法来,但要实现效率高的可能还是要点学问的,我也来看看

kevinch 发表于 2012-8-21 19:43:06

本帖最后由 kevinch 于 2012-8-22 11:19 编辑

**** Hidden Message *****才发现,isnumber检测不出来文本形式的数字

Qokelate 发表于 2012-8-25 08:47:06

回复 1# tryhi


    是否只有数字和字母这些字符?

biwfmm 发表于 2012-8-25 11:14:39

回复。看看效果

1007236046 发表于 2012-8-25 12:01:59

排序和字符串比较太复杂了,函数写不出来,不过你excel文件的排序我可以变通解决,就是ABC10,ABC5,ABC20,ABC2.5可以换成ABC10.0,ABC05.0,ABC20.0,ABC02.5,然后再排序就是你要的结果了

tryhi 发表于 2012-8-26 08:23:17

2

排序和字符串比较太复杂了,函数写不出来,不过你excel文件的排序我可以变通解决,就是ABC10,ABC5,ABC20,ABC2. ...
1007236046 发表于 2012-8-25 12:01 http://www.autoitx.com/images/common/back.gif


    数据是现成的,假如有1万个,请问如何换?

kevinch 发表于 2012-8-26 12:55:45

回复 28# tryhi
应该还是要正则提取数字加vba的format语句格式化输出

1007236046 发表于 2012-8-26 15:53:38

本帖最后由 1007236046 于 2012-8-27 22:51 编辑

回复 28# tryhi


    我以为你数据还没生成或者量少呢,那么以后就可以我这样生成,现成的数据我也不会换了,你可以试试29楼说的方法吧
刚想到可以用c语言里的格式输出,以后你可以试着像这样输入
#include <Array.au3>
Local $a =
For $i = 0 To 3
        $a[$i] = "ABC" & StringFormat("%4.1f",$a[$i])
Next
_ArraySort($a)
_ArrayDisplay($a)
页: 1 [2] 3
查看完整版本: 带数值的字符串数组排序讨论