Как отправить построчную информацию из файла .txt с помощью autohotkey?

Дорогие друзья, я пытаюсь отправить данные из файла .txt в какой-то другой файл с помощью команды Loop (чтение содержимого файла) в autohotkey. Но он не отправляет его построчно, то есть отправляет его непрерывно. Поскольку я сделал сценарий, который выглядит следующим образом:

F1::

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

В приведенном выше примере я сделал горячую клавишу F1.

На моем D: диске есть data.txt файл. Теперь я хочу, чтобы при нажатии клавиши F1 он отправлял только одну строку из файла data.txt. Когда я снова нажимаю клавишу F1, он должен отправить следующую строку из этого файла и так далее. Но этого не происходит. Он отправляет данные из data.txt файла на ходу (непрерывно) до конца файла.

Друзья любезно подскажут мне любое решение этой проблемы.


person user3906491    schedule 12.10.2014    source источник


Ответы (1)


Вы можете загрузить данные файла вне горячей клавиши, затем просмотреть их внутри горячей клавиши и получить соответствующую строку. Я не уверен, насколько быстро это будет с огромными файлами.

; 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
person Sid    schedule 12.10.2014