在AHK中将字符串转换为十进制ascii(dec)表示

时间:2017-10-24 18:48:17

标签: loops parsing autohotkey

我一直在努力让它工作一段时间并且调试它一直很痛苦......我遇到了一些不同的问题。

我提示用户输入如下:

InputBox, stuff, Enter information, Enter obfuscated information in the box below,,,,,,,30000,
dexStuff= ""
Loop, Parse, stuff
    dexStuff:= AscToDec(%A_LoopField%)

AscToDec功能很简单:

AscToDec(c){
    return Asc(c)
}

当我输入" test"当dexStuff为0000时,这结束了。作为我的字符串。如果我将AscToDec()的调用更改为仅仅MsgBox%A_LoopF​​ield%,则会在不同的弹出窗口中打印出来。

有人可以帮我理解我在这里做错了吗?

2 个答案:

答案 0 :(得分:1)

我在你的代码中看到了两个错误。首先,初始化dexStuff并非必要,但是如果您这样做,请使用dexStuff=dexStuff:="",而不是dexStuff=""dexStuff设置为2引号。其次,您不需要使用百分号在函数调用中取消引用A_LoopField

这是您更正后的代码

InputBox, stuff, Enter information, Enter obfuscated information in the box below,,,,,,,30000,
dexStuff:=""                           ; := operator, not =
Loop, Parse, stuff
    dexStuff:= AscToDec(A_LoopField)   ; A_LoopField not %A_LoopField%

答案 1 :(得分:1)

要连接输入的转换字符,请使用:

InputBox, stuff, Enter information, Enter obfuscated information in the box below,,,,,,,30000,

Loop, Parse, stuff
    dexStuff := dexStuff . Asc(A_LoopField)

MsgBox %dexStuff%