找回密码
 加入
搜索
查看: 2761|回复: 6

[AU3基础] 【已解决】如何创建26进制

  [复制链接]
发表于 2011-2-1 08:56:46 | 显示全部楼层 |阅读模式
本帖最后由 jianganew 于 2011-2-1 16:52 编辑

我要创建用26个字母组成的序列:

A~Z,AA~ZZ,AAA~ZZZ,AAAA~ZZZZ……

我是新手,不知如何写代码,请高手们指点。多谢了!

提前祝论坛里的兄弟姐妹们新年快乐,万事如意!
发表于 2011-2-1 09:37:20 | 显示全部楼层
本帖最后由 netegg 于 2011-2-1 09:53 编辑

字母顺序考虑不考虑?
还有是只算加减,乘除等高级运算算不算,小数算不算?
还有26进制算不到z,01234 56789 abcde fghij klmno p
转换通式参见http://www.imefan.com/dzrm/dzrm_99.html
 楼主| 发表于 2011-2-1 10:32:15 | 显示全部楼层
谢谢netegg的答复。

我想要的就是用字母来表示序列,要考虑顺序。
如:X后面是Y,Z,AA,AB……,AY后面是AZ,BA,BB……,ZX后面是ZY,ZZ,AAA,AAB……,BGX后面是BGY,BGZ,BHA,BHB……

最重要的是,我知道一个序列值后,能自动找出下一个正确序列值。

不考虑计算。
是因为有种老机器只能显示8个字符,其它5个字符有特别定义,我只能用3个字符来表示流水号。用字母排列做流水号,能表示26*26*26个,远大于数字表示。

请各位高手帮忙,谢谢!
发表于 2011-2-1 11:22:04 | 显示全部楼层
本帖最后由 netegg 于 2011-2-1 12:53 编辑

那容易呀
For $i = 65 To 90
        ConsoleWrite(Chr($i) & @CRLF)
        For $j = 65 To 90
                ConsoleWrite(Chr($i) & Chr($j) & @CRLF)
                For $k = 65 To 90
                        ConsoleWrite(Chr($i) & Chr($j) & Chr($k) & @CRLF)
                Next
        Next
Next
顺序输出:
#include <Array.au3>
Local $w = 0, $string
For $i = 65 To 90
        $string &= StringRight(StringFormat("%%010s = %010s", Chr($i)), 3) & '/'
        For $j = 65 To 90
                $string &= StringRight(StringFormat("%%010s = %010s", Chr($i) & Chr($j)), 3) & '/'
                For $k = 65 To 90
                        $string &= StringRight(StringFormat("%%010s = %010s", Chr($i) & Chr($j) & Chr($k)), 3) & '/'
                Next
        Next
Next
$a = StringSplit($string, '/', 2)
_ArraySort($a)
_ArrayDisplay($a, " ")
发表于 2011-2-1 16:01:55 | 显示全部楼层
 楼主| 发表于 2011-2-1 16:45:09 | 显示全部楼层
用netegg的代码已排出序列。

谢谢netegg和pcbar两位高人的帮助。

祝大家新春快乐!
发表于 2011-2-1 17:38:59 | 显示全部楼层
本帖最后由 netegg 于 2011-2-1 18:51 编辑

回复 6# jianganew
#include <Array.au3>
Local $w = 0, $string
For $i = 65 To 90
        $string &= StringFormat("%03s", Chr($i)) & '/'
        For $j = 65 To 90
                $string &= StringFormat("%03s", Chr($i) & Chr($j)) & '/'
                For $k = 65 To 90
                        $string &= StringFormat("%03s", Chr($i) & Chr($j) & Chr($k)) & '/'
                Next
        Next
Next
$a = StringSplit($string, '/', 2)
_ArraySort($a)
_ArrayDelete($a, 0)
_ArrayDisplay($a, " ")
没仔细想,照着例子改的,这样更好些
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-19 12:06 , Processed in 0.086079 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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