如何让一个变量等于 .txt 文件的多行?

How to get one variable to equal multiple lines of a .txt file?

如何让一个变量每次循环更新它的字符串值?我将文本文件的行存储在名为 $attempt 的变量中,然后在文本框中显示它。

.txt 文件:

我的 AutoIt 脚本:

$attempt 总是等于字符串“dog”(pw.txt 的第一行),这意味着“dog”在文本框中输入了 5 次。我希望在文本框中输入“Dog”、“Apple”、“Sand”、“Shoes”和“Hat”,在不同的时间单独输入一次。

如何在每次循环迭代后让变量 $attempt 等于“pw.txt”中的以下行(例如,

  1. 第一次迭代$attempt = "狗",
  2. 第二次迭代$attempt = "Apple",
  3. 第三次迭代$attempt =“沙子”等)?

文本行是示例,可能会发生变化。

您需要使用文件句柄。在您打开文件、读取文件并在循环的每次迭代中关闭文件的那一刻。通过使用文件句柄,文件保持打开状态并读取下一行。

例如

$fh=FileOpen("pw.txt")
for $i=1 to 5
 $attempt=FileReadLine($fh)
 MsgBox(4096,"test",$attempt)
Next

我会将整个文件读入数组,而不是逐行读取:

$aPW = FileReadToArray("pw.txt")
For $attempt In $aPW
    MsgBox(0, "test", $attempt)
Next

好处:您不必事先知道文件中有多少行,而且速度要快得多,因为您只需访问文件一次。

注意:数组的最大元素数为 16,777,216(Source),因此当您的文件大于 1670 万行时,Richards 的答案就是您的方式不顾速度劣势继续前行。