kk_lee69 发表于 2017-4-30 13:36:19

将数字转成纯英文26进位制或像Excel的行编号那样[已解决]

本帖最后由 kk_lee69 于 2017-5-1 12:00 编辑

簡單的小程式,將數字轉成純英文26進位制,列如A、B、C、...、Y、Z、AA、AB、...、AZ、BA、...,
或像Excel的行編號那樣。
以下是網上找的資料 ,但是我除了AU3 其他的語言不懂

能幫我轉一下AU3的寫法嗎??

private static String engCounter(int value){
        String res = "";       
        while(value >= 26){
                res = ((char)((value % 26)+65)) + res;
                value /= 52;
        }
        res = ((char)((value % 26) + 65)) + res;
        return res;
}

帆船 发表于 2017-4-30 16:06:02

顺便做了测试代码


#include <Array.au3>

Global $aEnglish
For $Num = 1 To 100
        $aEnglish[$Num - 1] = _NumberToEnglish($Num)
Next
_ArrayDisplay($aEnglish)

Func _NumberToEnglish($iNumber)
        Local $res = ""
        While $iNumber >= 26
                $res = Chr(Mod($iNumber, 26) + 65) & $res
                $iNumber /= 52
        WEnd
        $res = Chr(Mod($iNumber, 26) + 65) & $res
        Return $res
EndFunc

kk_lee69 发表于 2017-4-30 23:10:21

回复 2# 帆船

謝啦 我測試看看感謝!!

chzj589 发表于 2017-5-1 09:18:47

回复 2# 帆船
学习了。但英文字母没有A?

帆船 发表于 2017-5-1 11:41:00

回复 4# chzj589
原始代码是以0为A的。
页: [1]
查看完整版本: 将数字转成纯英文26进位制或像Excel的行编号那样[已解决]