如何使用autohotkey从.txt文件中逐行发送数据?

时间:2014-10-12 09:57:05

标签: autohotkey

亲爱的朋友们我试图通过在autohotkey中使用循环(读取文件内容)命令将数据从.txt文件发送到另一个文件。但它不是逐行发送它,即它是连续发送它。我制作了一个如下脚本 -

F1::

Loop, read, C:\Data.txt
{
    Loop, parse, A_LoopReadLine, %A_Tab%
    {
        Send %A_LoopField%
    }
}

在上面的示例中,我将 F1 设为热键。

我的data.txt驱动器中有D:个文件。现在我希望当我按 F1 键时,它应该从data.txt文件一次只发送一行。当我再次按 F1 键时,它应该从该文件发送下一行,依此类推。但事实并非如此。它正在小跑(连续)上从data.txt文件发送数据,直到文件结束。

朋友们建议我解决这个问题。

1 个答案:

答案 0 :(得分:0)

您可以在热键外部加载文件数据,然后在热键内循环并获取相应的行。我不确定这对于巨大的文件有多快。

; Uncomment this to load data from a file
;FileRead, fileData, C:\data.txt

; This is only for testing
fileData =
(LTrim
    Line one
    Line two
    Line three
)

; Init lineIndex to 1
lineIndex := 1

F1::
    Loop, Parse, fileData, `n
    {
        ; A_Index holds the current loop-itteration
        if (A_Index == lineIndex) {
            SendInput, %A_LoopField%
            ; Increment lineIndex
            lineIndex++
            break
        }
    }
return

Esc::ExitApp