我知道在此之前已经提出了一个类似的问题:
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)。
答案 0 :(得分:1)
您使用了
NewText += % ColorNumber thisChar
+
用于添加数字。但是,AutoHotkey中连接字符串的运算符为.
。请注意,这一切因语言而异。所以它应该是:
NewText .= ColorNumber . thisChar
与
相同NewText := NewText . ColorNumber . thisChar
无论何时使用:=
运算符,在简单赋值中都不需要任何%
- 只有在分配两个步骤时,例如,使用数组,就像您使用{{1 }}
使用普通thisChar
运算符表达上述分配的另一种方法是
=
你已经弄明白了。
答案 1 :(得分:0)
事实证明我只是使用了错误的操作符。正确的代码是:
Cocktail.cpp