如何在自动热键中连接数字和文本字符串

时间:2015-06-07 03:10:49

标签: autohotkey

我知道在此之前已经提出了一个类似的问题:

How to concatenate a number and a string in auto hotkey

但这个问题只考虑了数字。我的问题有点不同。例如:

myStr = A literal string
myInt = 5

现在我希望将两者连接成一个新字符串:5A literal string
这是我到目前为止所尝试的:

newStr = %myInt%%myStr% ;Result: Error illegal character found
newStr = % myInt myStr ;Result: Some number

convertString = (%myInt% . String)
newStr = %convertString%%myStr% ;Result: Error illegal character found

似乎无论我尝试什么,AHK都无法处理带有文本字符串的整数。有没有人有这方面的经验,并知道如何让它运作?

修改

我应该补充一点,我无法通过执行myInt = "5"来解决问题,因为我需要在myInt++的循环中对整数进行操作。另外我还没想到的第二个问题是:如何在字符串中添加unicode?我认为这是U+0003,但这似乎不起作用。

编辑2

似乎其他人没有得到相同的结果。我已经更新了AHK,但问题仍然存在。所以我会在这里包含我的确切代码,也许我做错了什么?

global OriText ;Contains textstring
global NewText ;Empty
global ColorNumber

ColorNumber = 2

convert_text(){
    StringSplit, char_array, OriText

    Loop, %char_array0%
    {
        thisChar := char_array%a_index%
        NewText += % ColorNumber thisChar
        MsgBox, %NewText%
        ColorNumber++

        if (ColorNumber = 13){
            ColorNumber = 2
        }
    }

    GuiControl,, NewText, %NewText%

    ColorNumber = 2
}

简短说明:我正在构建一个小工具,它会自动为irc中的文本着色,为每个角色添加不同的颜色。因此,将字符串拆分为数组并尝试添加:

U:0003ColorNumberCharacter

其中U:0003应该是mIRC中使用的字符的unicode(Ctrl + K)。

2 个答案:

答案 0 :(得分:1)

您使用了

NewText += % ColorNumber thisChar

+用于添加数字。但是,AutoHotkey中连接字符串的运算符为.。请注意,这一切因语言而异。所以它应该是:

NewText .= ColorNumber . thisChar

相同
NewText := NewText . ColorNumber . thisChar

无论何时使用:=运算符,在简单赋值中都不需要任何% - 只有在分配两个步骤时,例如,使用数组,就像您使用{{1 }}

使用普通thisChar运算符表达上述分配的另一种方法是

=

你已经弄明白了。

答案 1 :(得分:0)

事实证明我只是使用了错误的操作符。正确的代码是:

Cocktail.cpp