对呀,这个叫什么排序方法,同一字符串,有数字按从右向左,按文字从左向右 本帖最后由 Duvet 于 2012-8-20 23:35 编辑
**** Hidden Message ***** 回复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
明显不符合逻辑嘛,我那种排序就不会出现这样 回复 18# tryhi
還以為我弄錯了... **** 本内容被作者隐藏 ****
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:10 编辑
**** Hidden Message ***** 看看啥内容? 这个有点意思,按理说这个入手不是很难,稍微懂点的都能弄出个算法来,但要实现效率高的可能还是要点学问的,我也来看看 本帖最后由 kevinch 于 2012-8-22 11:19 编辑
**** Hidden Message *****才发现,isnumber检测不出来文本形式的数字 回复 1# tryhi
是否只有数字和字母这些字符? 回复。看看效果 排序和字符串比较太复杂了,函数写不出来,不过你excel文件的排序我可以变通解决,就是ABC10,ABC5,ABC20,ABC2.5可以换成ABC10.0,ABC05.0,ABC20.0,ABC02.5,然后再排序就是你要的结果了
2
排序和字符串比较太复杂了,函数写不出来,不过你excel文件的排序我可以变通解决,就是ABC10,ABC5,ABC20,ABC2. ...1007236046 发表于 2012-8-25 12:01 http://www.autoitx.com/images/common/back.gif
数据是现成的,假如有1万个,请问如何换? 回复 28# tryhi
应该还是要正则提取数字加vba的format语句格式化输出 本帖最后由 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)