1 (изменено: refum, 2019-01-27 17:02:56)

Тема: AHK: Поиск слов в файле

Здравствуйте, только начал знакомится с AHK, давно хотелось сделать такую вещь, как реагирование на стоп слов, очень бы выручила меня в работе.

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

#Persistent
return

OnClipboardChange:
if (A_EventInfo == 1)
{
	FileRead, temp_text, 1111.txt
	if temp_text contains % ClipBoard
	{
		SoundBeep
MsgBox, %OnClipboardChange%
	}
;	temp_text := ""
}
ExitApp

Слова в файле разделены след. символом "|" но присутствуют и фразы, например "арабо|займ|получить прибыль|" и т.д...
Скрипт реагирует только на целые слова указанные в списке в файле, а хотелось бы чтобы:
1) реагирование происходило если в слове встречается лишь часть текста. Например сейчас не реагирует на слова "заработок, заработать" и т.д.
2) Реагировало на словосочетание, если они заключенные в кавычки, например "получить прибыль"|"испытай фортуну" и т.д.
3) Вывести бы слово в MsgBox которое нашлось из черного списка.

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

2

Re: AHK: Поиск слов в файле

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

3 (изменено: Phoenixxx_Czar, 2019-01-27 17:09:37)

Re: AHK: Поиск слов в файле

Глупо будет?

#Persistent
return

OnClipboardChange:
if (A_EventInfo == 1)
{
	FileRead, temp_text, 1111.txt
	for k, v in StrSplit(temp_text, "|")
	{
		if ClipBoard contains % v
		{
			SoundBeep
			MsgBox, % "Найдено слово в черном списке - " v
		}
	}
}
return
Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

4 (изменено: refum, 2019-01-27 17:14:16)

Re: AHK: Поиск слов в файле

Phoenixxx_Czar
Заработало. По первому и третьему пункту. А вот по второму не работает, может я что не так делаю. Если идет фраза, то не происходит срабатывания например "плохое слово|стоп слово" на всю фразу не реагирует..
ПРОШУ ПРОЩЕНИЯ!!! Все работает как надо и по второму пункту!!

P.s. Кстати, этот пример кода что я привел в теме, оказался как раз вашим, я его взял с этого форума, где вы кому то уже помогали!

5

Re: AHK: Поиск слов в файле

Phoenixxx_Czar
Огромное Вам спасибо! Не думал что так быстро все решится. Я уже несколько дней мучаюсь, то на VBS пытался, то на Bash, вы очень помогли. Добавил вам плюсик в карму, и еще раз большое спасибо! Буду скрипт доделывать под свои задачи!

6

Re: AHK: Поиск слов в файле

Phoenixxx_Czar, а зачем файл каждый раз заново читать?
Проще:

#Persistent
FileRead, temp_text, 1111.txt
Return

OnClipboardChange:
   if (Clipboard ~= temp_text)
      MsgBox, 
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Поиск слов в файле

teadrinker, а если он в процессе дополняется?

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

8

Re: AHK: Поиск слов в файле

FileGetTime

9

Re: AHK: Поиск слов в файле

Phoenixxx_Czar пишет:

teadrinker, а если он в процессе дополняется?

Такого условия не было. А на всякий случай можно много чего сделать.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder