Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Страница 3 из 5«12345»
Модератор форума: Peter, DEMBEL, YURIY 
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Проверить наличие связи верхнего окна с открытым файлом (Как понять, что окно вызвано работой с определенным файлом?)
Проверить наличие связи верхнего окна с открытым файлом
AS3856Дата: Пт, 07 Июля 2017, 23:53 | Сообщение # 61
Ветеран форума
Peter,
мне просто нужен хороший пример с обьяснениями- я ж самоучка...

Добавлено (07 Июля 2017, 23:53)
---------------------------------------------
mishem,
а можем применить модификатор "r" ?
Не стандартный модификатор. Если включен, то диапазоны вида а-я включают также букву ё, А-Я включают Ё, а а-Я включает вообще все русские буквы.

 
СообщениеPeter,
мне просто нужен хороший пример с обьяснениями- я ж самоучка...

Добавлено (07 Июля 2017, 23:53)
---------------------------------------------
mishem,
а можем применить модификатор "r" ?
Не стандартный модификатор. Если включен, то диапазоны вида а-я включают также букву ё, А-Я включают Ё, а а-Я включает вообще все русские буквы.


Автор - AS3856
Дата добавления - 07 Июля 2017 в 23:53
mishemДата: Пт, 07 Июля 2017, 23:59 | Сообщение # 62
Эксперт форума
Цитата AS3856 ()
И mishem, согласись- это запись намного отличается от стандартной записи регулярных выражений..

Ты похоже мало знаком с регулярными выражениями. :) Для каждого языка программирования свои примочки в регулярках. И везде есть плюсы и есть минусы.

Почитай
Дж.Фридл - Регулярные выражения
Regular Expressions Cookbook (Jan Goyvaerts, Steven Levithan)

Лично я так и не осилил эти книги, но узнал много интересного. )

Добавлено (07 Июля 2017, 23:59)
---------------------------------------------

Цитата AS3856 ()
а можем применить модификатор "r" ?

Можем.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата AS3856 ()
И mishem, согласись- это запись намного отличается от стандартной записи регулярных выражений..

Ты похоже мало знаком с регулярными выражениями. :) Для каждого языка программирования свои примочки в регулярках. И везде есть плюсы и есть минусы.

Почитай
Дж.Фридл - Регулярные выражения
Regular Expressions Cookbook (Jan Goyvaerts, Steven Levithan)

Лично я так и не осилил эти книги, но узнал много интересного. )

Добавлено (07 Июля 2017, 23:59)
---------------------------------------------

Цитата AS3856 ()
а можем применить модификатор "r" ?

Можем.

Автор - mishem
Дата добавления - 07 Июля 2017 в 23:59
AS3856Дата: Сб, 08 Июля 2017, 00:22 | Сообщение # 63
Ветеран форума
hpwExecRegExpBool "(?i)[#91]^[#34]\wА-я[#93]ключ[#91]^[#34]\wА-я[#93]" "м мы ключём заперли дверь" "[Param]"

Булево значение " 1 "

hpwExecRegExpBool "(?i)[#91]^[#34]\wА-я[#93]ключ[#91]^[#34]\wА-я[#93]" "м мы ключикомм заперли дверь" "[Param]"
Булево значение " 0 "
Как я и говорил-буква "ё"
-а модификатор "r" почемуто неработает

-Да - я мало изучал регулярки. только в пределах своей надобности..

Добавлено (08 Июля 2017, 00:22)
---------------------------------------------
Сейчас посмотрел где начал изучать регулярки(у меня закладки есть) вобщем Регулярные выражения, совместимые с языком Perl. :D
вобщем то почти всё одинаково и тут и там модификаторы .-немного синтаксис другой..

 
СообщениеhpwExecRegExpBool "(?i)[#91]^[#34]\wА-я[#93]ключ[#91]^[#34]\wА-я[#93]" "м мы ключём заперли дверь" "[Param]"

Булево значение " 1 "

hpwExecRegExpBool "(?i)[#91]^[#34]\wА-я[#93]ключ[#91]^[#34]\wА-я[#93]" "м мы ключикомм заперли дверь" "[Param]"
Булево значение " 0 "
Как я и говорил-буква "ё"
-а модификатор "r" почемуто неработает

-Да - я мало изучал регулярки. только в пределах своей надобности..

Добавлено (08 Июля 2017, 00:22)
---------------------------------------------
Сейчас посмотрел где начал изучать регулярки(у меня закладки есть) вобщем Регулярные выражения, совместимые с языком Perl. :D
вобщем то почти всё одинаково и тут и там модификаторы .-немного синтаксис другой..


Автор - AS3856
Дата добавления - 08 Июля 2017 в 00:22
mishemДата: Сб, 08 Июля 2017, 00:27 | Сообщение # 64
Эксперт форума
Цитата AS3856 ()
-а модификатор "r" почемуто неработает

Читать не хочешь, по этому и плагины не получаются. :)

r
Не стандартный модификатор. Если включен, то диапазоны вида а-я включают также букву ё, А-Я включают Ё, а а-Я включает вообще все русские буквы.

А у нас диапазон записан А-я
Чуешь разницу?
:)

Добавлено (08 Июля 2017, 00:27)
---------------------------------------------
Вообще я регулярки составляю в RegexBuddy, а в НБ уже подгоняю под плагин. Если что то не идет, перехожу по ссылке и перечитываю синтаксис. Отличия есть, хоть и не значительные, но как видишь с диапазоном играют не малую роль. А RegexBuddy принудительно в диапазоне первую букву делает заглавной.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата AS3856 ()
-а модификатор "r" почемуто неработает

Читать не хочешь, по этому и плагины не получаются. :)

r
Не стандартный модификатор. Если включен, то диапазоны вида а-я включают также букву ё, А-Я включают Ё, а а-Я включает вообще все русские буквы.

А у нас диапазон записан А-я
Чуешь разницу?
:)

Добавлено (08 Июля 2017, 00:27)
---------------------------------------------
Вообще я регулярки составляю в RegexBuddy, а в НБ уже подгоняю под плагин. Если что то не идет, перехожу по ссылке и перечитываю синтаксис. Отличия есть, хоть и не значительные, но как видишь с диапазоном играют не малую роль. А RegexBuddy принудительно в диапазоне первую букву делает заглавной.


Автор - mishem
Дата добавления - 08 Июля 2017 в 00:27
AS3856Дата: Сб, 08 Июля 2017, 00:28 | Сообщение # 65
Ветеран форума
Чёрт побери- так и есть...
читаю через строчку... а ведь по-русски написано.. redface
 
СообщениеЧёрт побери- так и есть...
читаю через строчку... а ведь по-русски написано.. redface

Автор - AS3856
Дата добавления - 08 Июля 2017 в 00:28
mishemДата: Сб, 08 Июля 2017, 00:50 | Сообщение # 66
Эксперт форума

Добавлено (08 Июля 2017, 00:50)
---------------------------------------------



Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение

Добавлено (08 Июля 2017, 00:50)
---------------------------------------------


Автор - mishem
Дата добавления - 08 Июля 2017 в 00:50
AS3856Дата: Сб, 08 Июля 2017, 01:05 | Сообщение # 67
Ветеран форума
всегда подозревал что это ты на аватарке. -
да на 7 и в магазин можно не ходить...

Добавлено (08 Июля 2017, 01:05)
---------------------------------------------

 
Сообщениевсегда подозревал что это ты на аватарке. -
да на 7 и в магазин можно не ходить...

Добавлено (08 Июля 2017, 01:05)
---------------------------------------------


Автор - AS3856
Дата добавления - 08 Июля 2017 в 01:05
mishemДата: Сб, 08 Июля 2017, 03:30 | Сообщение # 68
Эксперт форума
Цитата AS3856 ()
Вообще ненаходит
как только ставлю эти метасимволы "\b" (конец слова)- так всё- и в предложении и без -искать нехочет.

Ну вот, чтобы понять почему не работает, всего то нужно было открыть книгу...

Цитата
В диалектах JavaScript, PCRE и Ruby могут возникнуть проблемы с ин-
тернациональным текстом, так как в этих диалектах при определении
границ слова в учет принимаются только символы кодировки ASCII.
Другими словами, границы слова обнаруживаются только в позициях
между совпадениями с выражениями ^|[^A-Za-z0-9_] и [A-Za-z0-9_]
или между совпадениями с выражениями [A-Za-z0-9_] и [^A-Za-z0-
9_]|$. То же относится и к Python, если при создании регулярного вы-
ражения не был установлен флаг UNICODE или U. Эта особенность препят-
ствует использованию метасимвола \b для поиска «только целого сло-
ва» в тексте, содержащем символы из алфавитов, отличных от алфави-
та Latin.


Всему виной кириллица, а не плагин. Если искать слово на латинице, то все работает исправно. :(


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата AS3856 ()
Вообще ненаходит
как только ставлю эти метасимволы "\b" (конец слова)- так всё- и в предложении и без -искать нехочет.

Ну вот, чтобы понять почему не работает, всего то нужно было открыть книгу...

Цитата
В диалектах JavaScript, PCRE и Ruby могут возникнуть проблемы с ин-
тернациональным текстом, так как в этих диалектах при определении
границ слова в учет принимаются только символы кодировки ASCII.
Другими словами, границы слова обнаруживаются только в позициях
между совпадениями с выражениями ^|[^A-Za-z0-9_] и [A-Za-z0-9_]
или между совпадениями с выражениями [A-Za-z0-9_] и [^A-Za-z0-
9_]|$. То же относится и к Python, если при создании регулярного вы-
ражения не был установлен флаг UNICODE или U. Эта особенность препят-
ствует использованию метасимвола \b для поиска «только целого сло-
ва» в тексте, содержащем символы из алфавитов, отличных от алфави-
та Latin.


Всему виной кириллица, а не плагин. Если искать слово на латинице, то все работает исправно. :(

Автор - mishem
Дата добавления - 08 Июля 2017 в 03:30
AS3856Дата: Сб, 08 Июля 2017, 10:53 | Сообщение # 69
Ветеран форума
 
Сообщение

Автор - AS3856
Дата добавления - 08 Июля 2017 в 10:53
PeterДата: Сб, 08 Июля 2017, 15:15 | Сообщение # 70
Админ NeoBook


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение

Автор - Peter
Дата добавления - 08 Июля 2017 в 15:15
ВадимДата: Сб, 08 Июля 2017, 19:32 | Сообщение # 71
Генератор идей
Цитата mishem ()
Например команда hpwExecRegExpBool.
В поле "Регулярное выражение" введи весь свой список через символ |.
Ничего себе, простое решение :). Я смотрел эту команду, но отказался по той причине, что искать мне нужно не по шаблону, а по точному соответствию. Но раз команда может искать и по точному соответствию, то надо будет попробовать, для самообразования...

Цитата Peter ()
Вадим, а ты ничего не напутал?
Специально повторил твой пример, и все душевно находится.

Дембель предложил весь черный список загнать в листбокс и потом разом проверить командой SearchStr:
Цитата DEMBEL ()
SearchStr "[Title]" "[BlackList]" "[HWND]" ""
Идея мне очень понравилась. Но для моей задачи не подходит. Попробовав я понял, что найти точный заголовок окна в списке стоп-слов/сочетаний в большинстве случаев не получится (например, мне нужно, чтобы браузер "Mozilla Firefox" всегда блокировался, а заголовок верхнего окна, если это браузер "Mozilla Firefox" всегда будет содержать что-то ещё, кроме "Mozilla Firefox"):

Поэтому я использовал цикл, чтобы искать стоп-слова/сочетания в заголовке верхнего окна, а не наоборот - заголовок окна в списке стоп-слов/сочетаний (т.е. черном списке).
Возможно регулярка позволит решить задачу без использования цикла... Надо поизучать тему, совсем новая для меня.
Прикрепления: 4724031.png(49Kb)


С уважением, Вадим
Win7x32, NB5.8.7, NeoBookDBPro1.6a, FF48, IE11
Мои материалы для начинающих необукеров
 
Сообщение
Цитата mishem ()
Например команда hpwExecRegExpBool.
В поле "Регулярное выражение" введи весь свой список через символ |.
Ничего себе, простое решение :). Я смотрел эту команду, но отказался по той причине, что искать мне нужно не по шаблону, а по точному соответствию. Но раз команда может искать и по точному соответствию, то надо будет попробовать, для самообразования...

Цитата Peter ()
Вадим, а ты ничего не напутал?
Специально повторил твой пример, и все душевно находится.

Дембель предложил весь черный список загнать в листбокс и потом разом проверить командой SearchStr:
Цитата DEMBEL ()
SearchStr "[Title]" "[BlackList]" "[HWND]" ""
Идея мне очень понравилась. Но для моей задачи не подходит. Попробовав я понял, что найти точный заголовок окна в списке стоп-слов/сочетаний в большинстве случаев не получится (например, мне нужно, чтобы браузер "Mozilla Firefox" всегда блокировался, а заголовок верхнего окна, если это браузер "Mozilla Firefox" всегда будет содержать что-то ещё, кроме "Mozilla Firefox"):

Поэтому я использовал цикл, чтобы искать стоп-слова/сочетания в заголовке верхнего окна, а не наоборот - заголовок окна в списке стоп-слов/сочетаний (т.е. черном списке).
Возможно регулярка позволит решить задачу без использования цикла... Надо поизучать тему, совсем новая для меня.

Автор - Вадим
Дата добавления - 08 Июля 2017 в 19:32
AS3856Дата: Сб, 08 Июля 2017, 19:45 | Сообщение # 72
Ветеран форума
Цитата Вадим ()
Поэтому я использовал цикл, чтобы искать стоп-слова/сочетания в заголовке верхнего окна, а не наоборот - заголовок окна в списке стоп-слов/сочетаний (т.е. черном списке).
Возможно регулярка позволит решить задачу без использования цикла... Надо поизучать тему, совсем новая для меня.

Регулярка работает быстрее, список загнать в переменную-и подставить в команде,- mishem, решил весь вопрос с синтаксисом записи - остаётся только вопрос кириллицей -тут смотреть надо конкретно(на худой конец напишу тебе функцию на vbs -там вроде нет проблем с кириллицей )(имхо)
 
Сообщение
Цитата Вадим ()
Поэтому я использовал цикл, чтобы искать стоп-слова/сочетания в заголовке верхнего окна, а не наоборот - заголовок окна в списке стоп-слов/сочетаний (т.е. черном списке).
Возможно регулярка позволит решить задачу без использования цикла... Надо поизучать тему, совсем новая для меня.

Регулярка работает быстрее, список загнать в переменную-и подставить в команде,- mishem, решил весь вопрос с синтаксисом записи - остаётся только вопрос кириллицей -тут смотреть надо конкретно(на худой конец напишу тебе функцию на vbs -там вроде нет проблем с кириллицей )(имхо)

Автор - AS3856
Дата добавления - 08 Июля 2017 в 19:45
PeterДата: Сб, 08 Июля 2017, 20:01 | Сообщение # 73
Админ NeoBook
Цитата Вадим ()
Идея мне очень понравилась. Но для моей задачи не подходит.

Идея-то хорошая, но она действительно не подходит в данном случае, да и не подойдет во многих других случаях, потому-что.. читаем ВНИМАТЕЛЬНО здесь.
Для кого все это пишется?
Непонятно....
%)

Цитата Вадим ()
искать мне нужно не по шаблону, а по точному соответствию.

Почему надо искать именно "по точному соответствию", если требуется:

Цитата Вадим ()
мне нужно, чтобы браузер "Mozilla Firefox" всегда блокировался, а заголовок верхнего окна, если это браузер "Mozilla Firefox" всегда будет содержать что-то ещё, кроме "Mozilla Firefox"):

И что?
В чем проблема-то?
Там и не будет искомой последовательности символов, потому-что, что ты сам туда записал, то там и будет.
В черном списке не "окна" должны быть, а ключевые слова (стоп-слов/сочетаний), и вот их и надо искать в заголовках окон, а не наоборот!
Регулярка тут не поможет, т.к. сам алгоритм решения задачи составлен неверно!
Ищи в заголовке окон только Mozilla Firefox!
И пофиг что там еще в этом заголовке!
Если в заголовке имеется Mozilla Firefox, то это его (мохиллы) окно.
Вот и блокируй его.
Зачем тут "точное соответствие"?

Вадим, честное слово, чем больше я читаю твои посты в этой теме, тем меньше понимаю!
Без обид!

Добавлено (08 Июля 2017, 20:01)
---------------------------------------------
Цитата AS3856 ()
Регулярка работает быстрее

Может она и работает быстрее, но в данном случае у Вадима что?
Сотни окон открыты?
Перебрать в цикле десяток-другой окон для NB пара пустяков, и даже никто не заметит разницы в скорости.
Мудрим все... мудрим...

КАКАЯ, В КОНЦЕ-КОНЦОВ, ЗАДАЧА КОНКРЕТНО ПОСТАВЛЕНА?

А может просто я такой тупой.....


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата Вадим ()
Идея мне очень понравилась. Но для моей задачи не подходит.

Идея-то хорошая, но она действительно не подходит в данном случае, да и не подойдет во многих других случаях, потому-что.. читаем ВНИМАТЕЛЬНО здесь.
Для кого все это пишется?
Непонятно....
%)

Цитата Вадим ()
искать мне нужно не по шаблону, а по точному соответствию.

Почему надо искать именно "по точному соответствию", если требуется:

Цитата Вадим ()
мне нужно, чтобы браузер "Mozilla Firefox" всегда блокировался, а заголовок верхнего окна, если это браузер "Mozilla Firefox" всегда будет содержать что-то ещё, кроме "Mozilla Firefox"):

И что?
В чем проблема-то?
Там и не будет искомой последовательности символов, потому-что, что ты сам туда записал, то там и будет.
В черном списке не "окна" должны быть, а ключевые слова (стоп-слов/сочетаний), и вот их и надо искать в заголовках окон, а не наоборот!
Регулярка тут не поможет, т.к. сам алгоритм решения задачи составлен неверно!
Ищи в заголовке окон только Mozilla Firefox!
И пофиг что там еще в этом заголовке!
Если в заголовке имеется Mozilla Firefox, то это его (мохиллы) окно.
Вот и блокируй его.
Зачем тут "точное соответствие"?

Вадим, честное слово, чем больше я читаю твои посты в этой теме, тем меньше понимаю!
Без обид!

Добавлено (08 Июля 2017, 20:01)
---------------------------------------------
Цитата AS3856 ()
Регулярка работает быстрее

Может она и работает быстрее, но в данном случае у Вадима что?
Сотни окон открыты?
Перебрать в цикле десяток-другой окон для NB пара пустяков, и даже никто не заметит разницы в скорости.
Мудрим все... мудрим...

КАКАЯ, В КОНЦЕ-КОНЦОВ, ЗАДАЧА КОНКРЕТНО ПОСТАВЛЕНА?

А может просто я такой тупой.....

Автор - Peter
Дата добавления - 08 Июля 2017 в 20:01
mishemДата: Сб, 08 Июля 2017, 21:46 | Сообщение # 74
Эксперт форума
Цитата Peter ()
Регулярка тут не поможет, т.к. сама задача поставлена неверно!

Именно регулярка здесь поможет для ускорения процесса поиска.

Цитата Peter ()
Ищи в заголовке окон только Mozilla Firefox!

Совершенно верно, в заголовке, а не наоборот.
Но в черном списке не только же находится Mozilla Firefox. Вадим, сколько возможных вариантов уже? А сколько буде добавлено?

В итоге получается нам нужно распарсить список, и в цикле искать совпадения в заголовках окон. Это может быть долгий и нудный процесс/

Регулярка это сделает за доли секунд.
Единственная проблема это то, что метасимволы \b не работают с кириллицей. То есть если первая и\или последняя буква на кириллице, то этот метасимвол не сработает.

Конструкция :

\bПоиск выражения\b

Не найдет точную фразу "Поиск выражения". а конструкция:

\bMozilla Firefox\b

найдет все выражения "Mozilla Firefox".

В итоге нам нужно просто составить регулярку учитывая это. Все словосочетания состоящие или начинающиеся и заканчивающиеся символами латиницы, мы заключаем между \b. Все символы которые на кириллице, мы заключаем в [^"\wА-я].

В итоге это должно выглядеть примерно так:

Код
\bMozilla Firefox\b|[^"\wА-я]Поиск выражения[^"\wА-я]|\bMozilla\b|\bFirefox\b|[^"\wА-я]еще какое то выражение[^"\wА-я] и т.д


в таком виде можно составить весь список загружать его в переменную например [lists] и именно его искать в строке заголовка.

hpwExecRegExpBool "[lists]" "Строка заголовка" "[Result]"

Если [Result] равно 1, то в строке есть какое то слово или словосочетание из всего списка, если 0, то нет.

Что еще лучшего тут можно городить? %)

Цитата Вадим ()
Я смотрел эту команду, но отказался по той причине, что искать мне нужно не по шаблону, а по точному соответствию.

Эта команда ищет не по шаблону, а по тому, что ты ей скормишь. Выше конструкция выражения работает примерно так:
Найти точное соответствие слову или словосочетанию:
Mozilla Firefox или Поиск выражения или Mozilla или Firefox или еще какое то выражение ....
и т.д. по всему списку.

Если что то одно будет найдено, поиск прерывается и в переменную [Result] возвращается 1, если ничего не найдено - 0.

Добавлено (08 Июля 2017, 21:44)
---------------------------------------------

Цитата mishem ()
[^"\wА-я]

Опять тупо скопировал. Чтобы поиск проходил по всем русским буквам нужно диапазон А-я заменить на а-Я

Добавлено (08 Июля 2017, 21:46)
---------------------------------------------
И да, в самом начале регулярки нужно подставить (?ir)
i это поиск проходить будет не зависимо от регистра
r будет искать и кириллицу


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.


Сообщение отредактировано
mishem - Сб, 08 Июля 2017, 21:39
 
Сообщение
Цитата Peter ()
Регулярка тут не поможет, т.к. сама задача поставлена неверно!

Именно регулярка здесь поможет для ускорения процесса поиска.

Цитата Peter ()
Ищи в заголовке окон только Mozilla Firefox!

Совершенно верно, в заголовке, а не наоборот.
Но в черном списке не только же находится Mozilla Firefox. Вадим, сколько возможных вариантов уже? А сколько буде добавлено?

В итоге получается нам нужно распарсить список, и в цикле искать совпадения в заголовках окон. Это может быть долгий и нудный процесс/

Регулярка это сделает за доли секунд.
Единственная проблема это то, что метасимволы \b не работают с кириллицей. То есть если первая и\или последняя буква на кириллице, то этот метасимвол не сработает.

Конструкция :

\bПоиск выражения\b

Не найдет точную фразу "Поиск выражения". а конструкция:

\bMozilla Firefox\b

найдет все выражения "Mozilla Firefox".

В итоге нам нужно просто составить регулярку учитывая это. Все словосочетания состоящие или начинающиеся и заканчивающиеся символами латиницы, мы заключаем между \b. Все символы которые на кириллице, мы заключаем в [^"\wА-я].

В итоге это должно выглядеть примерно так:

Код
\bMozilla Firefox\b|[^"\wА-я]Поиск выражения[^"\wА-я]|\bMozilla\b|\bFirefox\b|[^"\wА-я]еще какое то выражение[^"\wА-я] и т.д


в таком виде можно составить весь список загружать его в переменную например [lists] и именно его искать в строке заголовка.

hpwExecRegExpBool "[lists]" "Строка заголовка" "[Result]"

Если [Result] равно 1, то в строке есть какое то слово или словосочетание из всего списка, если 0, то нет.

Что еще лучшего тут можно городить? %)

Цитата Вадим ()
Я смотрел эту команду, но отказался по той причине, что искать мне нужно не по шаблону, а по точному соответствию.

Эта команда ищет не по шаблону, а по тому, что ты ей скормишь. Выше конструкция выражения работает примерно так:
Найти точное соответствие слову или словосочетанию:
Mozilla Firefox или Поиск выражения или Mozilla или Firefox или еще какое то выражение ....
и т.д. по всему списку.

Если что то одно будет найдено, поиск прерывается и в переменную [Result] возвращается 1, если ничего не найдено - 0.

Добавлено (08 Июля 2017, 21:44)
---------------------------------------------

Цитата mishem ()
[^"\wА-я]

Опять тупо скопировал. Чтобы поиск проходил по всем русским буквам нужно диапазон А-я заменить на а-Я

Добавлено (08 Июля 2017, 21:46)
---------------------------------------------
И да, в самом начале регулярки нужно подставить (?ir)
i это поиск проходить будет не зависимо от регистра
r будет искать и кириллицу


Автор - mishem
Дата добавления - 08 Июля 2017 в 21:46
PeterДата: Сб, 08 Июля 2017, 21:56 | Сообщение # 75
Админ NeoBook
Цитата mishem ()
В итоге получается нам нужно распарсить список, и в цикле искать совпадения в заголовках окон. Это может быть долгий и нудный процесс/

А зачем "парсить" список (кстати, команда NB StrParse справится с этой задачей ни чуть не хуже), когда его можно заранее составить (на бумажке) и потом просто грузить в ListBox через LoadVariables (а лучше вообще сразу в массив)?.
Ведь крутить цикл все-равно надо будет необушными командами.

Цитата mishem ()
Если [Result] равно 1, то в строке есть какое то слово или словосочетание из всего списка, если 0, то нет.

А в чем тут "преимущество" регулярки чего-то не пойму?
См. чуть выше.

Что-то я совсем отупел похоже....
:)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата mishem ()
В итоге получается нам нужно распарсить список, и в цикле искать совпадения в заголовках окон. Это может быть долгий и нудный процесс/

А зачем "парсить" список (кстати, команда NB StrParse справится с этой задачей ни чуть не хуже), когда его можно заранее составить (на бумажке) и потом просто грузить в ListBox через LoadVariables (а лучше вообще сразу в массив)?.
Ведь крутить цикл все-равно надо будет необушными командами.

Цитата mishem ()
Если [Result] равно 1, то в строке есть какое то слово или словосочетание из всего списка, если 0, то нет.

А в чем тут "преимущество" регулярки чего-то не пойму?
См. чуть выше.

Что-то я совсем отупел похоже....
:)

Автор - Peter
Дата добавления - 08 Июля 2017 в 21:56
mishemДата: Сб, 08 Июля 2017, 22:00 | Сообщение # 76
Эксперт форума
Цитата Peter ()
Зачем тут "точное соответствие"?

В принципе точное соответствие может быть и не нужно. AS3856, затронул правильно тему с ключем. Если по уму, то как бы нужно предвидеть все варианты. Но в данной задаче, подозреваю что у Вадима не список слов, а список словосочетаний. Исходя из этого, метасимволы \b или конструкцию [^"\wА-я] можно и не ставить. здесь как бы Вадиму нужно определится, нужно это все, или нет. Если нет, тогда все на много проще. Просто в списке заменяем все [#13][#10] или [#13], какой там используется у него разделитель на символ |. И фсе. Скармливаем в переменную [lists] и запускаем команду. Все на самом деле просто, чем кажется. :)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата Peter ()
Зачем тут "точное соответствие"?

В принципе точное соответствие может быть и не нужно. AS3856, затронул правильно тему с ключем. Если по уму, то как бы нужно предвидеть все варианты. Но в данной задаче, подозреваю что у Вадима не список слов, а список словосочетаний. Исходя из этого, метасимволы \b или конструкцию [^"\wА-я] можно и не ставить. здесь как бы Вадиму нужно определится, нужно это все, или нет. Если нет, тогда все на много проще. Просто в списке заменяем все [#13][#10] или [#13], какой там используется у него разделитель на символ |. И фсе. Скармливаем в переменную [lists] и запускаем команду. Все на самом деле просто, чем кажется. :)

Автор - mishem
Дата добавления - 08 Июля 2017 в 22:00
PeterДата: Сб, 08 Июля 2017, 22:03 | Сообщение # 77
Админ NeoBook
Цитата mishem ()
И да, в самом начале регулярки нужно подставить (?ir)
i это поиск проходить будет не зависимо от регистра
r будет искать и кириллицу

Я смотрю с этими регулярками столько геморроя, что всякое желание смотреть в их сторону отпадает.
Пусть NB-скрипт справится с задачей на полсекунды дольше, зато все проще раз в сто!
Delphi и то понятнее будет!
:D


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата mishem ()
И да, в самом начале регулярки нужно подставить (?ir)
i это поиск проходить будет не зависимо от регистра
r будет искать и кириллицу

Я смотрю с этими регулярками столько геморроя, что всякое желание смотреть в их сторону отпадает.
Пусть NB-скрипт справится с задачей на полсекунды дольше, зато все проще раз в сто!
Delphi и то понятнее будет!
:D

Автор - Peter
Дата добавления - 08 Июля 2017 в 22:03
mishemДата: Сб, 08 Июля 2017, 22:05 | Сообщение # 78
Эксперт форума
Что ты действительно отстал от жизни. :)

Цитата Peter ()
А зачем "парсить" список

Как зачем? Ну можно не парсить, можно сразу в цикле перебирать. Ключевое слово цикл. Парсит быстро, но даже парсить будет медленнее, то есть за это время уже отработает регулярка. ;)

Цитата Peter ()
А в чем тут "преимущество" регулярки чего-то не пойму?

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


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеЧто ты действительно отстал от жизни. :)

Цитата Peter ()
А зачем "парсить" список

Как зачем? Ну можно не парсить, можно сразу в цикле перебирать. Ключевое слово цикл. Парсит быстро, но даже парсить будет медленнее, то есть за это время уже отработает регулярка. ;)

Цитата Peter ()
А в чем тут "преимущество" регулярки чего-то не пойму?

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

Автор - mishem
Дата добавления - 08 Июля 2017 в 22:05
PeterДата: Сб, 08 Июля 2017, 22:08 | Сообщение # 79
Админ NeoBook


Цитата mishem ()
Не надо парсить, не нужен цикл. Регулярка сразу ищет по всем заданным словосочетаниям.

Понятно!
Но:
Цитата Peter ()
Я смотрю с этими регулярками столько геморроя, что всякое желание смотреть в их сторону отпадает.
Пусть NB-скрипт справится с задачей на полсекунды дольше, зато все проще раз в сто!

:)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение


Цитата mishem ()
Не надо парсить, не нужен цикл. Регулярка сразу ищет по всем заданным словосочетаниям.

Понятно!
Но:
Цитата Peter ()
Я смотрю с этими регулярками столько геморроя, что всякое желание смотреть в их сторону отпадает.
Пусть NB-скрипт справится с задачей на полсекунды дольше, зато все проще раз в сто!

:)

Автор - Peter
Дата добавления - 08 Июля 2017 в 22:08
mishemДата: Сб, 08 Июля 2017, 22:10 | Сообщение # 80
Эксперт форума
Цитата Peter ()
Я смотрю с этими регулярками столько геморроя, что всякое желание смотреть в их сторону отпадает.

Там не столько геморроя, там просто нужно все это выучить и понять. На самом деле интересная вещь, даже может быть интереснее чем делфи. :) Там столько тонкостей...
Желание нужно и терпение.

Я по сей день в ни дуб дубом. Так, вершков нахватался и методом тыка. А там возможностей для поиска текста, выше крыше. Но тоже есть предел.

Добавлено (08 Июля 2017, 22:10)
---------------------------------------------

Цитата Peter ()
Пусть NB-скрипт справится с задачей на полсекунды дольше, зато все проще раз в сто!

Петр, там не пол секунды. Да и скрипта в НБ может понадобится написать пару страниц, то что в регулярке сделает одна сточка. В НБ написать! :D


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата Peter ()
Я смотрю с этими регулярками столько геморроя, что всякое желание смотреть в их сторону отпадает.

Там не столько геморроя, там просто нужно все это выучить и понять. На самом деле интересная вещь, даже может быть интереснее чем делфи. :) Там столько тонкостей...
Желание нужно и терпение.

Я по сей день в ни дуб дубом. Так, вершков нахватался и методом тыка. А там возможностей для поиска текста, выше крыше. Но тоже есть предел.

Добавлено (08 Июля 2017, 22:10)
---------------------------------------------

Цитата Peter ()
Пусть NB-скрипт справится с задачей на полсекунды дольше, зато все проще раз в сто!

Петр, там не пол секунды. Да и скрипта в НБ может понадобится написать пару страниц, то что в регулярке сделает одна сточка. В НБ написать! :D

Автор - mishem
Дата добавления - 08 Июля 2017 в 22:10
PeterДата: Сб, 08 Июля 2017, 22:16 | Сообщение # 81
Админ NeoBook
Цитата mishem ()
даже может быть интереснее чем делфи. :) Там столько тонкостей...
Желание нужно и терпение.

А ты думаешь, что в Delphi "тонкостей" мало?
:D
Просто в Delphi есть система и логика, его можно понять умом, а в регулярках (как я понимаю) нужно просто запоминать.
Впрочем, тебе виднее.
Только тогда непонятно, почему ты забросил Delphi?
Сейчас бы уже столько плагинов понаделал!
Эсперальта бы умер от зависти!
;)
Цитата mishem ()
Да и скрипта в НБ может понадобится написать пару страниц,

Какая пара страниц?
Перекрестись!
В варианте Вадима вообще все просто как мычание!
И потому я не пойму почему такая ерунда требует такого долгого обсуждения?


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата mishem ()
даже может быть интереснее чем делфи. :) Там столько тонкостей...
Желание нужно и терпение.

А ты думаешь, что в Delphi "тонкостей" мало?
:D
Просто в Delphi есть система и логика, его можно понять умом, а в регулярках (как я понимаю) нужно просто запоминать.
Впрочем, тебе виднее.
Только тогда непонятно, почему ты забросил Delphi?
Сейчас бы уже столько плагинов понаделал!
Эсперальта бы умер от зависти!
;)
Цитата mishem ()
Да и скрипта в НБ может понадобится написать пару страниц,

Какая пара страниц?
Перекрестись!
В варианте Вадима вообще все просто как мычание!
И потому я не пойму почему такая ерунда требует такого долгого обсуждения?

Автор - Peter
Дата добавления - 08 Июля 2017 в 22:16
mishemДата: Сб, 08 Июля 2017, 22:24 | Сообщение # 82
Эксперт форума
Вот смотри, пример Вадима. Найти заголовок в тексте из 1000 строк с помощью НБ - не проблема. Естественно зачем здесь регулярка? НБ сама справится на раз.

А в итоге нам нужно другое, найти 1000 (может больше) возможных вариантов в одной строке. И уже для НБ это посильная, но трудоемкая задача.

А если усложнить задачу? Нужно найти 1000 возможных вариантов, но чтобы перед найденным совпадением не было к примеру запятых, чтобы это совпадение было началом предложения, чтобы в конце стояла точка, и это было не последнее предложение в тексте.

Можно еще добавить условий. :) Регулярка это сделает за долю секунды, а НБ? ;)

Добавлено (08 Июля 2017, 22:21)
---------------------------------------------

Цитата Peter ()
а в регулярках (как я понимаю) нужно просто запоминать.
Впрочем, тебе виднее.

Нет, не правильно понимаешь. Там нужна именно система и логика. Возможность просчитать все возможные варианты.

Добавлено (08 Июля 2017, 22:24)
---------------------------------------------

Цитата Peter ()
Только тогда непонятно, почему ты забросил Delphi?

Да не забросил я, временно отложил. НБ кстати тоже. :(
Своих заморочек сейчас хватает. Просто сидеть за компом нет времени. Я сейчас захожу на форумы почитать, да кино посмотреть. Ну найти что то нужное в интернете. И фсе. Интерес ко всему как то поугас.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеВот смотри, пример Вадима. Найти заголовок в тексте из 1000 строк с помощью НБ - не проблема. Естественно зачем здесь регулярка? НБ сама справится на раз.

А в итоге нам нужно другое, найти 1000 (может больше) возможных вариантов в одной строке. И уже для НБ это посильная, но трудоемкая задача.

А если усложнить задачу? Нужно найти 1000 возможных вариантов, но чтобы перед найденным совпадением не было к примеру запятых, чтобы это совпадение было началом предложения, чтобы в конце стояла точка, и это было не последнее предложение в тексте.

Можно еще добавить условий. :) Регулярка это сделает за долю секунды, а НБ? ;)

Добавлено (08 Июля 2017, 22:21)
---------------------------------------------

Цитата Peter ()
а в регулярках (как я понимаю) нужно просто запоминать.
Впрочем, тебе виднее.

Нет, не правильно понимаешь. Там нужна именно система и логика. Возможность просчитать все возможные варианты.

Добавлено (08 Июля 2017, 22:24)
---------------------------------------------

Цитата Peter ()
Только тогда непонятно, почему ты забросил Delphi?

Да не забросил я, временно отложил. НБ кстати тоже. :(
Своих заморочек сейчас хватает. Просто сидеть за компом нет времени. Я сейчас захожу на форумы почитать, да кино посмотреть. Ну найти что то нужное в интернете. И фсе. Интерес ко всему как то поугас.

Автор - mishem
Дата добавления - 08 Июля 2017 в 22:24
PeterДата: Сб, 08 Июля 2017, 22:34 | Сообщение # 83
Админ NeoBook
Цитата mishem ()
А в итоге нам нужно другое, найти 1000 (может больше) возможных вариантов в одной строке. И уже для НБ это посильная, но трудоемкая задача.

Согласен!
Цитата mishem ()
Можно еще добавить условий. :) Регулярка это сделает за долю секунды, а НБ?

Тоже согласен!

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

Добавлено (08 Июля 2017, 22:34)
---------------------------------------------



- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата mishem ()
А в итоге нам нужно другое, найти 1000 (может больше) возможных вариантов в одной строке. И уже для НБ это посильная, но трудоемкая задача.

Согласен!
Цитата mishem ()
Можно еще добавить условий. :) Регулярка это сделает за долю секунды, а НБ?

Тоже согласен!

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

Добавлено (08 Июля 2017, 22:34)
---------------------------------------------


Автор - Peter
Дата добавления - 08 Июля 2017 в 22:34
mishemДата: Сб, 08 Июля 2017, 23:16 | Сообщение # 84
Эксперт форума


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение

Автор - mishem
Дата добавления - 08 Июля 2017 в 23:16
PeterДата: Сб, 08 Июля 2017, 23:50 | Сообщение # 85
Админ NeoBook


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение

Автор - Peter
Дата добавления - 08 Июля 2017 в 23:50
AS3856Дата: Вс, 09 Июля 2017, 03:35 | Сообщение # 86
Ветеран форума
В vbs с регуляркой такая же "беда" С кириллицей нехочет нормально работать \b
 
СообщениеВ vbs с регуляркой такая же "беда" С кириллицей нехочет нормально работать \b

Автор - AS3856
Дата добавления - 09 Июля 2017 в 03:35
ВадимДата: Вс, 09 Июля 2017, 12:27 | Сообщение # 87
Генератор идей
Цитата mishem ()
у Вадима не список слов, а список словосочетаний
И то, и другое есть.
Цитата Peter ()
читаем ВНИМАТЕЛЬНО здесь.
Для кого все это пишется?
Вроде внимательно читаю :). Видимо не совсем понятно пишу.
Цитата Peter ()
Почему надо искать именно "по точному соответствию", если требуется:

Цитата
Цитата Вадим ()
мне нужно, чтобы браузер "Mozilla Firefox" всегда блокировался, а заголовок верхнего окна, если это браузер "Mozilla Firefox" всегда будет содержать что-то ещё, кроме "Mozilla Firefox"):


И что?
КАКАЯ, В КОНЦЕ-КОНЦОВ, ЗАДАЧА КОНКРЕТНО ПОСТАВЛЕНА?

Цитата mishem ()
Но в черном списке не только же находится Mozilla Firefox. Вадим, сколько возможных вариантов уже? А сколько буде добавлено?


Задача такая: для проведения экзамена нужно, чтобы студент не списывая прошел онлайн тест и решил задачу в Excel. Конкретнее, нужно сделать так, чтобы он не мог тупо взять готовый ответ из интернета или из готового файла. Т.е. нужно, чтобы он на компьютере больше не мог ничего открыть (ни страницы в интернете, ни файлы), но мог переходить из необушного браузера в Excel и обратно, а также использовать вспомогательные окна работая как с браузером, так и с Excel.
Про телефоны и планшеты не говорите ничего :), это другая задача, я её здесь не ставлю.

Как я решил поставленную задачу:
При загрузке программа открывает необушный браузер уже на нужной странице университетского сайта с тестом и одновременно из себя извлекает/открывает файл Excel. Поэтому я заранее знаю, какое доменное имя допустимо в адресной строке и какое имя допустимо для файла Excel. "Белый список" (это 15 наиболее вероятных заголовков окон, если не пытаться мухлевать) при запуске программы помещается в заранее заготовленные переменные, а "Черный список" из файла TXT помещается в массив (на данный момент это 315 строк - слов и словосочетаний). Всё, программа готова к работе, ожидает студента.

Постоянно, с интервалом таймера, запускается подпрограмма, которая проверяет - есть ли нужный домен в адресной строке. Если нет (например, студент по ссылкам ушел на другой сайт), то возвращает браузер на страницу теста. Таким образом в необушном браузере ничего другого не открыть (и адресной строки нет, и если идти по ссылкам на странице, то все равно вернет на сервер тестирования).

Однако, остаются другие браузеры и другие файлы (из которых можно взять готовый ответ и выдать за свой).
Поэтому подпрограмма далее проверяет - если верхнее окно это Excel, то допустимый открыт файл или нет. Если нет, то срабатывает подпрограмма "хендехох" (программа выводит крупное мигающее сообщение на весь экран и лишает пользователя управления на 1 минуту, что не удобно, поскольку тест на время и отбивает охоту открывать другие файлы).

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

Путаница в обсуждении возникла, вероятно, от того, что я попытался избавиться от цикла применив неверную для моей задачи логику "искать полученный заголовок в списке заготовленных стоп-слов". И я это понял (написав об этом), и на форуме мне об этом все написали :)

Цитата mishem ()
В итоге это должно выглядеть примерно так:

Код
\bMozilla Firefox\b|[^"\wа-Я]Поиск выражения[^"\wа-Я]|\bMozilla\b|\bFirefox\b|[^"\wа-Я]еще какое то выражение[^"\wа-Я] и т.д

в таком виде можно составить весь список загружать его в переменную например [lists] и именно его искать в строке заголовка.

Код
hpwExecRegExpBool "[lists]" "Строка заголовка" "[Result]"

Цитата AS3856 ()
Регулярка работает быстрее, список загнать в переменную-и подставить в команде,- mishem, решил весь вопрос с синтаксисом записи - остаётся только вопрос кириллицей -тут смотреть надо конкретно(на худой конец напишу тебе функцию на vbs -там вроде нет проблем с кириллицей)
Спасибо, mishem, Андрей! С регулярками надо разбираться, конечно! Полезное дело. Осталось только время на это найти :)



С уважением, Вадим
Win7x32, NB5.8.7, NeoBookDBPro1.6a, FF48, IE11
Мои материалы для начинающих необукеров
 
Сообщение
Цитата mishem ()
у Вадима не список слов, а список словосочетаний
И то, и другое есть.
Цитата Peter ()
читаем ВНИМАТЕЛЬНО здесь.
Для кого все это пишется?
Вроде внимательно читаю :). Видимо не совсем понятно пишу.
Цитата Peter ()
Почему надо искать именно "по точному соответствию", если требуется:

Цитата
Цитата Вадим ()
мне нужно, чтобы браузер "Mozilla Firefox" всегда блокировался, а заголовок верхнего окна, если это браузер "Mozilla Firefox" всегда будет содержать что-то ещё, кроме "Mozilla Firefox"):


И что?
КАКАЯ, В КОНЦЕ-КОНЦОВ, ЗАДАЧА КОНКРЕТНО ПОСТАВЛЕНА?

Цитата mishem ()
Но в черном списке не только же находится Mozilla Firefox. Вадим, сколько возможных вариантов уже? А сколько буде добавлено?


Задача такая: для проведения экзамена нужно, чтобы студент не списывая прошел онлайн тест и решил задачу в Excel. Конкретнее, нужно сделать так, чтобы он не мог тупо взять готовый ответ из интернета или из готового файла. Т.е. нужно, чтобы он на компьютере больше не мог ничего открыть (ни страницы в интернете, ни файлы), но мог переходить из необушного браузера в Excel и обратно, а также использовать вспомогательные окна работая как с браузером, так и с Excel.
Про телефоны и планшеты не говорите ничего :), это другая задача, я её здесь не ставлю.

Как я решил поставленную задачу:
При загрузке программа открывает необушный браузер уже на нужной странице университетского сайта с тестом и одновременно из себя извлекает/открывает файл Excel. Поэтому я заранее знаю, какое доменное имя допустимо в адресной строке и какое имя допустимо для файла Excel. "Белый список" (это 15 наиболее вероятных заголовков окон, если не пытаться мухлевать) при запуске программы помещается в заранее заготовленные переменные, а "Черный список" из файла TXT помещается в массив (на данный момент это 315 строк - слов и словосочетаний). Всё, программа готова к работе, ожидает студента.

Постоянно, с интервалом таймера, запускается подпрограмма, которая проверяет - есть ли нужный домен в адресной строке. Если нет (например, студент по ссылкам ушел на другой сайт), то возвращает браузер на страницу теста. Таким образом в необушном браузере ничего другого не открыть (и адресной строки нет, и если идти по ссылкам на странице, то все равно вернет на сервер тестирования).

Однако, остаются другие браузеры и другие файлы (из которых можно взять готовый ответ и выдать за свой).
Поэтому подпрограмма далее проверяет - если верхнее окно это Excel, то допустимый открыт файл или нет. Если нет, то срабатывает подпрограмма "хендехох" (программа выводит крупное мигающее сообщение на весь экран и лишает пользователя управления на 1 минуту, что не удобно, поскольку тест на время и отбивает охоту открывать другие файлы).

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

Путаница в обсуждении возникла, вероятно, от того, что я попытался избавиться от цикла применив неверную для моей задачи логику "искать полученный заголовок в списке заготовленных стоп-слов". И я это понял (написав об этом), и на форуме мне об этом все написали :)

Цитата mishem ()
В итоге это должно выглядеть примерно так:

Код
\bMozilla Firefox\b|[^"\wа-Я]Поиск выражения[^"\wа-Я]|\bMozilla\b|\bFirefox\b|[^"\wа-Я]еще какое то выражение[^"\wа-Я] и т.д

в таком виде можно составить весь список загружать его в переменную например [lists] и именно его искать в строке заголовка.

Код
hpwExecRegExpBool "[lists]" "Строка заголовка" "[Result]"

Цитата AS3856 ()
Регулярка работает быстрее, список загнать в переменную-и подставить в команде,- mishem, решил весь вопрос с синтаксисом записи - остаётся только вопрос кириллицей -тут смотреть надо конкретно(на худой конец напишу тебе функцию на vbs -там вроде нет проблем с кириллицей)
Спасибо, mishem, Андрей! С регулярками надо разбираться, конечно! Полезное дело. Осталось только время на это найти :)


Автор - Вадим
Дата добавления - 09 Июля 2017 в 12:27
AS3856Дата: Вс, 09 Июля 2017, 13:29 | Сообщение # 88
Ветеран форума
Если надо запретить уход на другие сайты- то может прописать запрет в hosts - файле (при загрузке программы
изменять hosts - файл ., - а при выходе из программы возвращать в прежний вид ?) Тогда студент несможет уйти на другой сайт или перепрыгнуть по ссылкам куда-то.( ну это я так- предложение возникло.)

Добавлено (09 Июля 2017, 13:25)
---------------------------------------------
(на школьных компах так и делаю )

Добавлено (09 Июля 2017, 13:29)
---------------------------------------------
Пример блокировки нежелательных адресов:
127.0.0.1 an.yandex.ru
127.0.0.1 direct.yandex.ru
127.0.0.1 googleads.g.doubleclick.net
127.0.0.1 google-analytics.com
127.0.0.1 doubleclick.net

 
СообщениеЕсли надо запретить уход на другие сайты- то может прописать запрет в hosts - файле (при загрузке программы
изменять hosts - файл ., - а при выходе из программы возвращать в прежний вид ?) Тогда студент несможет уйти на другой сайт или перепрыгнуть по ссылкам куда-то.( ну это я так- предложение возникло.)

Добавлено (09 Июля 2017, 13:25)
---------------------------------------------
(на школьных компах так и делаю )

Добавлено (09 Июля 2017, 13:29)
---------------------------------------------
Пример блокировки нежелательных адресов:
127.0.0.1 an.yandex.ru
127.0.0.1 direct.yandex.ru
127.0.0.1 googleads.g.doubleclick.net
127.0.0.1 google-analytics.com
127.0.0.1 doubleclick.net


Автор - AS3856
Дата добавления - 09 Июля 2017 в 13:29
PeterДата: Вс, 09 Июля 2017, 13:45 | Сообщение # 89
Админ NeoBook
Цитата Вадим ()
Постоянно, с интервалом таймера, запускается подпрограмма, которая проверяет - есть ли нужный домен в адресной строке. Если нет (например, студент по ссылкам ушел на другой сайт), то возвращает браузер на страницу теста. Таким образом в необушном браузере ничего другого не открыть (и адресной строки нет, и если идти по ссылкам на странице, то все равно вернет на сервер тестирования).

Ошибка.
У необушного броузера есть событие Before Navigate. Дальше читаем справку....

Цитата Вадим ()
Если же верхнее окно не входит в "белый список", то срабатывает подпрограмма проверки по "черному списку".

Зачем проверять "белый список", когда можно сразу "черный" ?....
Впрочем, это не принципиально, можно и так

Цитата Вадим ()
Если элемент массива (черного списка) обнаруживается в строке заголовка, то срабатывает подпрограмма"хендехох", лишая пользователя управления на 1 минуту (своего рода штраф).

ВОТ!
А раньше было наоборот, по крайней мере, согласно кода, и в этом и была вся проблема:
Цитата Вадим ()
Путаница в обсуждении возникла, вероятно, от того, что я попытался избавиться от цикла применив неверную для моей задачи логику "искать полученный заголовок в списке заготовленных стоп-слов". И я это понял (написав об этом), и на форуме мне об этом все написали

Правильно!
И в чем сейчас загвоздка?

Вадим, от того, насколько грамотно ты сам составишь "черный список" и будет зависеть успех твоего поиска.
;)

Сейчас я вообще уже не понимаю чего мы тут мусолим - все уже давно понятно.
И нафига тут регулярки?
%)

Добавлено (09 Июля 2017, 13:45)
---------------------------------------------
Цитата AS3856 ()
изменять hosts - файл

:)
А это уже настоящее компьютерное хамство, пардон!
За такие вещи надо просто убивать на месте!
Вернуть обратно....
А если программа "вылетела"?


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата Вадим ()
Постоянно, с интервалом таймера, запускается подпрограмма, которая проверяет - есть ли нужный домен в адресной строке. Если нет (например, студент по ссылкам ушел на другой сайт), то возвращает браузер на страницу теста. Таким образом в необушном браузере ничего другого не открыть (и адресной строки нет, и если идти по ссылкам на странице, то все равно вернет на сервер тестирования).

Ошибка.
У необушного броузера есть событие Before Navigate. Дальше читаем справку....

Цитата Вадим ()
Если же верхнее окно не входит в "белый список", то срабатывает подпрограмма проверки по "черному списку".

Зачем проверять "белый список", когда можно сразу "черный" ?....
Впрочем, это не принципиально, можно и так

Цитата Вадим ()
Если элемент массива (черного списка) обнаруживается в строке заголовка, то срабатывает подпрограмма"хендехох", лишая пользователя управления на 1 минуту (своего рода штраф).

ВОТ!
А раньше было наоборот, по крайней мере, согласно кода, и в этом и была вся проблема:
Цитата Вадим ()
Путаница в обсуждении возникла, вероятно, от того, что я попытался избавиться от цикла применив неверную для моей задачи логику "искать полученный заголовок в списке заготовленных стоп-слов". И я это понял (написав об этом), и на форуме мне об этом все написали

Правильно!
И в чем сейчас загвоздка?

Вадим, от того, насколько грамотно ты сам составишь "черный список" и будет зависеть успех твоего поиска.
;)

Сейчас я вообще уже не понимаю чего мы тут мусолим - все уже давно понятно.
И нафига тут регулярки?
%)

Добавлено (09 Июля 2017, 13:45)
---------------------------------------------
Цитата AS3856 ()
изменять hosts - файл

:)
А это уже настоящее компьютерное хамство, пардон!
За такие вещи надо просто убивать на месте!
Вернуть обратно....
А если программа "вылетела"?

Автор - Peter
Дата добавления - 09 Июля 2017 в 13:45
AS3856Дата: Вс, 09 Июля 2017, 13:55 | Сообщение # 90
Ветеран форума
Ещё вариант проверять имя сайта- если изменено- перенаправлять

Добавлено (09 Июля 2017, 13:55)
---------------------------------------------

Цитата Peter ()
А если программа "вылетела"?

Будут вечно изучать эту страницу.. :D
 
СообщениеЕщё вариант проверять имя сайта- если изменено- перенаправлять

Добавлено (09 Июля 2017, 13:55)
---------------------------------------------

Цитата Peter ()
А если программа "вылетела"?

Будут вечно изучать эту страницу.. :D

Автор - AS3856
Дата добавления - 09 Июля 2017 в 13:55
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Проверить наличие связи верхнего окна с открытым файлом (Как понять, что окно вызвано работой с определенным файлом?)
Страница 3 из 5«12345»
Поиск: