1

Тема: AHK: Взятие информации из текстового файла

Добрый день, нужна помощь в реализации следующего скрипта.. идея такова:

!1::
SendMessage, 0x50,, 0x4190419,, A
Sendinput, {F6}.бан ИМЯ1 100 Причина{enter}
sleep 100
Sendinput, {F6}.бан ИМЯ2 100 Причина{enter}
sleep 100
return

Нужно, чтобы вместо "ИМЯ1"/"ИМЯ2" вписывались автоматом ники с другого текстового файла, которые там написаны в таком виде:

Вася_Пупкин
Федя_Петров

Вот, чтобы при запуске скрипта по АЛЬТ+1 он банил не "ИМЯ1", а "Вася_Пупкин". Или можно эти же имена в сам файл скрипта засунуть, но чтобы он по номеру строк их считывал. Буду очень признателен за помощь.

2

Re: AHK: Взятие информации из текстового файла

А если у тебя имён три сотни в скрипте? Твой код только на два распространяется, создай цикл:


!1::
Loop {
	FileReadLine, line, путь к файлу, %A_Index%
	If ErrorLevel
		break
	sendinput, {F6}.бан %line% причина{Enter}
	sleep 100
}
return

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

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

3 (изменено: shahlik002, 2017-07-22 10:24:00)

Re: AHK: Взятие информации из текстового файла

Имена следует хранить в переменных.


Имя1=Вася_Пупкин
Имя2=Федя_Петров
msgbox,%Имя2%    ; то что находиться в процентах - переменная
return

На сколько я понимаю имен у вас будет явно не 2шт.
Вот скрипт на считывание всех ников и действия с ними.


FileRead,СодержимоеФайла,имена.txt   ;Извлекает весь текст из файла в переменную СодержимоеФайла
loop,Parse,СодержимоеФайла,`n ;Обрабатывает каждую строку переменной кодом в скобках
{
sendinput, {F6}.бан %line% причина{Enter}
sleep 100
}
return

4

Re: AHK: Взятие информации из текстового файла

shahlik002, ваш код - аналогия моего, за исключением того, что мой потребляет меньше памяти, чем ваш (т.к. я не читаю весь файл целиком, а напрямую обрабатываю строчку). Если вы использовали все это время свой вариант, то есть повод посмотреть пример на стороне .

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

5

Re: AHK: Взятие информации из текстового файла

belyankin12, а почему не используете Loop, read?

6

Re: AHK: Взятие информации из текстового файла

svoboden, зачем читать весь тестовый файл, если я заранее знаю, что мне его построчно нужно будет разбивать. Банально зачем делать два действия (read а потом parse), вместо одного (filereadline)?

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

7

Re: AHK: Взятие информации из текстового файла

belyankin12, я не говорил о FileRead, я говорил о Loop, read в справка написано, что он работает быстрее, чем Filereadline.

8

Re: AHK: Взятие информации из текстового файла

Дед Мазай пишет:

FileReadLine
В целом эта команда направлена на использование преимущественно с файлами малого размера, или в случаях, когда необходимо прочтение только какой-то одной строки. Если вам необходимо просканировать и обработать большое количество строк (одну за одной), для лучшей производительности используйте file-reading loop. Для того, чтобы прочитать и поместить в переменную весь файл целиком, используйте FileRead.

belyankin12, если нужно из большого файла считать всего одну строку, предпочтительнее FileReadLine. А если весь файл построчно разбивать, тогда быстре Loop (файлы и папки).

9

Re: AHK: Взятие информации из текстового файла

Друзья, я премного благодарен вам за помощь, скрипт работает так, как и требовалось, спасибо!

10

Re: AHK: Взятие информации из текстового файла

Вот оно что, а я тут "советы" раздаю, эх, невнимательный(.

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

11

Re: AHK: Взятие информации из текстового файла

Доброго времени суток, скрипт действует и я им активно пользуюсь, но возник ещё вопрос.
Если в текстовом файле я пишу "Привет!", то сами понимаете скрипт отыгрывает Alt. Но мне для игроков надо постараться сделать всю эту историю как можно проще, а объяснять всем, что вместо ! надо писать {!}, это не очень вариант. Есть какой-то способ в вышеуказанном скрипте сделать так, чтобы именно с этого текстового файла он распознавал ! как !, ^ как ^ и + как +?

12

Re: AHK: Взятие информации из текстового файла

Использовать sendchat() из samp udf для отправки сообщения на сервер.

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

13

Re: AHK: Взятие информации из текстового файла

belyankin12, я признаться не особо понимаю о чём Вы.

14 (изменено: svoboden, 2017-09-10 16:17:14)

Re: AHK: Взятие информации из текстового файла

SendRaw используй вместо Send.