1

Тема: AHK: Берем текст из файла и заносим в переменные

Для начала у нас есть текстовый файл, и в нем содержится такая информация:


ХХХХХХХХХХ-УУУУУУ (Здесь может быть и цифры, и большие буквы, и от 6 до 18 символов)
ХХХХХХХХХХ-УУУУУУУ
ХХХХХХХХХХ-УУУУУУУУУУ
ХХХХХХХХХХ-УУУУУУУУУ

Нужно что бы скрипт брал с первой строчки данные "ХХХХХХХХХХ" до тире, и заносил их в переменную "login".
Потом он должен взять данные после тире, и сохранить в переменную "pass".
Следующим шагом стереть первую строчку полностью(и до тире и после), при этом сохранить обе переменные, а вторую строчку передвинуть
на первую позицию. Сделать это для того что бы, я потом мог использовать эти 2 переменные в своих целях, и по возвращению цикла в самое начало, уже он работал так сказать по новой.

Надеюсь понятно написал, и вы мне поможете.

2 (изменено: belyankin12, 2017-10-07 23:06:45)

Re: AHK: Берем текст из файла и заносим в переменные

А не проще читать по строчке файл? В AHK существуют циклы чтения файлов построчно. По вопросу выбора - RegExMatch в помощь.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

3

Re: AHK: Берем текст из файла и заносим в переменные

Значения каждый раз полностью разные

4

Re: AHK: Берем текст из файла и заносим в переменные

Но тире же всегда постоянное.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

5 (изменено: valeron_121, 2017-10-08 13:13:30)

Re: AHK: Берем текст из файла и заносим в переменные

belyankin12 Я понял к чему ты клонишь, тогда как удалять 1 строчку полностью, по завершению выполнения скрипта?

6

Re: AHK: Берем текст из файла и заносим в переменные

belyankin12 пишет:

А не проще читать по строчке файл? В AHK существуют циклы чтения файлов построчно.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

7

Re: AHK: Берем текст из файла и заносим в переменные

belyankin12
В том то и дело что я хз как это делать.

8

Re: AHK: Берем текст из файла и заносим в переменные

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

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

9 (изменено: svoboden, 2017-10-09 17:29:33)

Re: AHK: Берем текст из файла и заносим в переменные

valeron_121 пишет:

как удалять 1 строчку полностью, по завершению выполнения скрипта?

process_list =
(
1
2
3
)

    Loop, Parse, process_list, `n
    {
        if A_LoopField not in 1
	    FileAppend, %A_LoopField%`n,  %A_Desktop%\Output.txt
    }
Return

10

Re: AHK: Берем текст из файла и заносим в переменные

svoboden, не верный вариант.

process_list =
(
7
2
3
)

    Loop, Parse, process_list, `n
    {
        if A_LoopField not in 1
	    FileAppend, %A_LoopField%`n,  %A_Desktop%\Output.txt
    }
Return

11 (изменено: svoboden, 2017-10-09 18:49:44)

Re: AHK: Берем текст из файла и заносим в переменные

Malcev, так тээсу надо удалить строку с определенными данными, а не именно первую.

12 (изменено: Malcev, 2017-10-09 18:52:02)

Re: AHK: Берем текст из файла и заносим в переменные

Разве?

valeron_121 пишет:

Следующим шагом стереть первую строчку полностью

valeron_121 пишет:

как удалять 1 строчку полностью, по завершению выполнения скрипта?

13 (изменено: svoboden, 2017-10-09 19:24:26)

Re: AHK: Берем текст из файла и заносим в переменные

Ну, в вопросе еще есть следующее: "Нужно, чтобы скрипт брал с первой строчки данные "ХХХХХХХХХХ" до тире".

14

Re: AHK: Берем текст из файла и заносим в переменные

И даже при таком условии ваш скрипт работает не верно:

process_list =
(
1
1
1
)

    Loop, Parse, process_list, `n
    {
        if A_LoopField not in 1
	    FileAppend, %A_LoopField%`n,  %A_Desktop%\Output.txt
    }
Return

15 (изменено: svoboden, 2017-10-09 19:48:06)

Re: AHK: Берем текст из файла и заносим в переменные

Почему не верно?:

process_list =
(
1
1
1
)

    Loop, Parse, process_list, `n
    {
        if A_LoopField in 1
	    FileAppend, %A_LoopField%`n,  %A_Desktop%\Output.txt
    }
Return

16 (изменено: svoboden, 2017-10-09 19:49:46)

Re: AHK: Берем текст из файла и заносим в переменные

Malcev пишет:

работает не верно

Почему не верно? А что должен сохранять скрипт, в котором отсутствуют данные.

17 (изменено: Malcev, 2017-10-09 19:50:19)

Re: AHK: Берем текст из файла и заносим в переменные

Тогда объясните по какому алгоритму работает ваш скрипт?
Потому как вы, сначала пишите одно условие, а в следующем варианте совсем другое.

18 (изменено: svoboden, 2017-10-09 20:04:45)

Re: AHK: Берем текст из файла и заносим в переменные

Если в скрипте нет данных, то, что он тогда сохранит.

19

Re: AHK: Берем текст из файла и заносим в переменные

А при чем тут данные?
У вас скрипт стирает все строки, которые идентичны единице.
Где вы увидели, что топикстартер просил это делать?

process_list =
(
1
2
3
1
2
3
)

    Loop, Parse, process_list, `n
    {
        if A_LoopField not in 1
	     a.= A_LoopField "`n"
    }
msgbox % a
Return

20 (изменено: svoboden, 2017-10-09 20:36:41)

Re: AHK: Берем текст из файла и заносим в переменные

Так первую строку, он тоже не просил удалять? Я, думаю, если топикастартер хочет удалить данные из одной строки, то почему он оставит похожие строки?

21

Re: AHK: Берем текст из файла и заносим в переменные

svoboden пишет:

Так первую строку, он тоже не просил удалять?

Как же не просил?
Его просьбу я процитировал в 12 посту.

svoboden пишет:

Я, думаю, если топикастартер хочет удалить данные из одной строки, то почему он оставит похожие строки?

Да много может быть причин. Например зайти под каким-то логином повторно.

22

Re: AHK: Берем текст из файла и заносим в переменные

На самом деле я думаю что парень просто знает про команду FileReadLine но не догадывается, что можно в цикл его завернуть и вместо 1 A_Index указать. От этого и просьба удалять всегда первую строчку, чтобы он каждый раз читал её с помощью FileReadLine, var, path, 1. Но он ещё мне так и не ответил .

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

23 (изменено: svoboden, 2017-10-10 21:06:19)

Re: AHK: Берем текст из файла и заносим в переменные

Если тээсу надо удалить строку, а не данные в ней, то вот еще вариант:

process_list =
(
1
1
3
1
2
)

    Loop, Parse, process_list, `n
    {
    if A_Index not in 1
	FileAppend, %A_LoopField%`n,  %A_Desktop%\Output.txt
    }
Return

24

Re: AHK: Берем текст из файла и заносим в переменные

svoboden, тут ошибочка в коде, раньше я ее всегда допускал. Перед "`n" не нужно ставить пробел.

Loop, Parse, process_list, `n
Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)