AutoHotKey:无法将变量值写入文件

时间:2013-10-28 22:34:40

标签: autohotkey

我确信我犯的是一个非常简单的错误,但今天我必须有一个金发碧眼的日子。我想不明白。

这是我的情况: 我将使用InputBox从用户那里获取几个输入值,如下所示:

InputBox, r, what is the value of r ?, Enter Value, , 400, 100, 300, 300, , 10, 1
InputBox, c, what is the value of c ?, Enter Value, , 420, 120, 300, 300, , 10, 3
InputBox, ct, what is the count ?, Enter Value, , 440, 140, 300, 300, , 10, 10

然后我会将这些值写入一个文件,这样,下次用户点击相同的热键组合时,它会让他选择使用上次使用的相同值。

所以我想我会用这样的东西:

file := FileOpen( "c:\users\me\ahk.txt", "a" )
if !IsObject(file)
{
MsgBox Can't open "%FileName%" for writing.
return
}

str := "r_val="
file.Write(str)
str := %r%
file.write(str)
str := "`r`n
file.write(str)

; ... repeat for all variables

file.Close()

并为我要记录的所有变量值重复最后一个块。

我的问题是,静态字符串是以某种方式写入指定文件,而不是在%符号之间包含的证据。我读了很多ahk帮助文件,并认为我是按照例子来“t”的。然而,我的结果并不像我预期的那样。

我还尝试在第一次写入后关闭文件,然后使用

fileappend,
(
%mintmout%
),"c:\users\me\ahk.txt"

但这也没有帮助。

有人可以告诉我这里有什么问题以及如何解决它?

另外,如果你能回答这个问题,我肯定会在我解决了手头的问题之后再提出这个问题。

我的文件将是:

r=5
c=7
ct=10
...

我需要从这个文件中读取并将值分配给它们各自的变量。如何在ahk脚本中完成此操作?

提前感谢您的回答。

1 个答案:

答案 0 :(得分:2)

使用:=进行变量分配时,不需要%个符号。

该行

 str := %r%

应该是

str := r

关于第二个问题,如果您需要经常编写和检索值,我建议您使用IniReadIniWrite而不是简单的文本文件。