Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Peter, мне просто нужен хороший пример с обьяснениями- я ж самоучка...
Добавлено (07 Июля 2017, 23:53) --------------------------------------------- mishem, а можем применить модификатор "r" ? Не стандартный модификатор. Если включен, то диапазоны вида а-я включают также букву ё, А-Я включают Ё, а а-Я включает вообще все русские буквы.
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. вобщем то почти всё одинаково и тут и там модификаторы .-немного синтаксис другой..
Читать не хочешь, по этому и плагины не получаются.
r Не стандартный модификатор. Если включен, то диапазоны вида а-я включают также букву ё, А-Я включают Ё, а а-Я включает вообще все русские буквы.
А у нас диапазон записан А-я Чуешь разницу?
Добавлено (08 Июля 2017, 00:27) --------------------------------------------- Вообще я регулярки составляю в RegexBuddy, а в НБ уже подгоняю под плагин. Если что то не идет, перехожу по ссылке и перечитываю синтаксис. Отличия есть, хоть и не значительные, но как видишь с диапазоном играют не малую роль. А RegexBuddy принудительно в диапазоне первую букву делает заглавной.
В мед институте практика в морге. Преподаватель говорит -Врач должен быть внимательным и не брезгливым Подходит к трупу, палец в зад засунул, вынул и облизал. -Повторить всем Все по очереди подошли, засунули, вынули и облизали. -За то что не брезгливые, пять. За не внимательность, два. Все студенты в недоумении смотрят на него. =Я в зад засунул указательный палец, а облизал средний. А вы?
Добавлено (08 Июля 2017, 00:50) ---------------------------------------------
ЦитатаPeter ()
mishem, как-то покавырялся чуток, и забросил это дело
Голова работать перестала. Пить бросил. Кровь гулять перестала. Мозг тормозить стал. А бухать... Я на одну пенсию сейчас живу в 7 рублей, не побухаешь.
Вообще ненаходит как только ставлю эти метасимволы "\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.
Всему виной кириллица, а не плагин. Если искать слово на латинице, то все работает исправно. Не хочешь читать хелп?
Еще раз повторю - то, как делает плагины Эсперальта, не сложнее "калькулятора", честное слово! Что касается SDK, то, если надо, поможем-подскажем, ничего там заумного нет, и SDK - всего-лишь документация. На днях на оффоруме разработчик NB заявил, что на ближайшее время никаких серьезных обновлений NB даже не запланировано. Это очень и очень печально.
Может задумаетесь?
Разберусь с текущим проектом - попробую реанимировать свой старый проект на делфях с сокетами - ну и надеюсь на Вашу помощь (Как пробный вариант плагина). "Утереть нос" Эсперальтебыло б неплохо,да и расширить функционал необука.Желание написать плагин по-прежнему есть...
мне просто нужен хороший пример с обьяснениями- я ж самоучка...
Так практически все "фрилансеры" такие, а уж плагинотворители для NB вообще все. А пример, и хороший пример, есть в самом SDK (и даже в справочном файле к SDK все практически разжевано). Начинать надо именно с этого примера, чтобы понять как NB взаимодействует с плагинами, и как плагины работают.
ЦитатаAS3856 ()
реанимировать свой старый проект на делфях с сокетами
А вот это я бы не советовал (во всяком случае пока) делать. Тема работы с сокетами весьма "деликатная", и без специальных знаний и опыта в нее лучше даже не соваться. Все должно идти своим чередом. См. чуть выше.
Необушные плагины это самые обычные виндовские библиотеки, отличающиеся только расширением в имени файла. Но для формального начала плагинотворения нет необходимости знать устройство и работу библиотек "от а до я", достаточно иметь самые общие представления, а все остальное придет со временем. И начинать нужно именно с простых вещей (пусть даже и не нужных), а не стремиться сразу создать "ядрену бомбу". И в этом смысле (повторяюсь), примеры в SDK - идеальные варианты, проще уже некуда.
Цитатаmishem ()
Читать не хочешь, по этому и плагины не получаются.
Не исключено.
ЦитатаAS3856 ()
Желание написать плагин по-прежнему есть...
Ну, тогда, за работу!?
Кстати, насчет Эспиральты... Пожалуй уж все давно заметили, что я "неровно к нему дышу". Да, действительно, меня раздражает и даже возмущает его подход к плагинотворению. Были бы его плагины бесплатными, то и фиг с ним (даже слова бы не сказал), но его чудовищная жадность и просто потрясающий непрофессионализм поражают! Более непрофессиональной работы (из заявленных как профессиональные) мне видеть еще не доводилось. Кустарщина начального уровня, с мега-амбициями! Еще и заявляет, что у него, дескать, самая лучшая в инете коллекция плагинов. Абсолютно никаких собственных идей или решений, а только тупое копирование-транслирование чужой БЕСПЛАТНОЙ работы! Кто-то скажет типа "так сделай тогда сам и лучше, если такой умный". Справедливо, и "технически" это совсем несложно, но только загвоздка в том, что на реально хороший плагин нужны время и стимул/желание (гнать такую же халтуру как у него смысла нет). Потому я и призываю других к этому процессу, ведь желание есть, а время (когда есть желание) всегда можно найти.
ЦитатаAS3856 ()
надеюсь на Вашу помощь
Ну, что будет в моих скромных силах, то всегда пожалуйста, но главное - САМООБРАЗОВАНИЕ, т.к. знания, полученные таким путем, самые прочные.
Цитатаmishem ()
Голова работать перестала. Пить бросил. Кровь гулять перестала. Мозг тормозить стал. А бухать... Я на одну пенсию сейчас живу в 7 рублей, не побухаешь
Понимаю, увы... На такую пенсию, не то, чтобы бухать, а просто прожить невозможно. И о чем думают те, кто назначает такие пенсии? Их бы самих посадить на такой "доход"! Даже не знаю (пока) что тут можно предпринять.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Например команда hpwExecRegExpBool. В поле "Регулярное выражение" введи весь свой список через символ |.
Ничего себе, простое решение :). Я смотрел эту команду, но отказался по той причине, что искать мне нужно не по шаблону, а по точному соответствию. Но раз команда может искать и по точному соответствию, то надо будет попробовать, для самообразования...
ЦитатаPeter ()
Вадим, а ты ничего не напутал? Специально повторил твой пример, и все душевно находится.
Дембель предложил весь черный список загнать в листбокс и потом разом проверить командой SearchStr:
ЦитатаDEMBEL ()
SearchStr "[Title]" "[BlackList]" "[HWND]" ""
Идея мне очень понравилась. Но для моей задачи не подходит. Попробовав я понял, что найти точный заголовок окна в списке стоп-слов/сочетаний в большинстве случаев не получится (например, мне нужно, чтобы браузер "Mozilla Firefox" всегда блокировался, а заголовок верхнего окна, если это браузер "Mozilla Firefox" всегда будет содержать что-то ещё, кроме "Mozilla Firefox"):
Поэтому я использовал цикл, чтобы искать стоп-слова/сочетания в заголовке верхнего окна, а не наоборот - заголовок окна в списке стоп-слов/сочетаний (т.е. черном списке). Возможно регулярка позволит решить задачу без использования цикла... Надо поизучать тему, совсем новая для меня.
Поэтому я использовал цикл, чтобы искать стоп-слова/сочетания в заголовке верхнего окна, а не наоборот - заголовок окна в списке стоп-слов/сочетаний (т.е. черном списке). Возможно регулярка позволит решить задачу без использования цикла... Надо поизучать тему, совсем новая для меня.
Регулярка работает быстрее, список загнать в переменную-и подставить в команде,- mishem, решил весь вопрос с синтаксисом записи - остаётся только вопрос кириллицей -тут смотреть надо конкретно(на худой конец напишу тебе функцию на vbs -там вроде нет проблем с кириллицей )(имхо)
Идея мне очень понравилась. Но для моей задачи не подходит.
Идея-то хорошая, но она действительно не подходит в данном случае, да и не подойдет во многих других случаях, потому-что.. читаем ВНИМАТЕЛЬНО здесь. Для кого все это пишется? Непонятно....
ЦитатаВадим ()
искать мне нужно не по шаблону, а по точному соответствию.
Почему надо искать именно "по точному соответствию", если требуется:
ЦитатаВадим ()
мне нужно, чтобы браузер "Mozilla Firefox" всегда блокировался, а заголовок верхнего окна, если это браузер "Mozilla Firefox" всегда будет содержать что-то ещё, кроме "Mozilla Firefox"):
И что? В чем проблема-то? Там и не будет искомой последовательности символов, потому-что, что ты сам туда записал, то там и будет. В черном списке не "окна" должны быть, а ключевые слова (стоп-слов/сочетаний), и вот их и надо искать в заголовках окон, а не наоборот! Регулярка тут не поможет, т.к. сам алгоритм решения задачи составлен неверно! Ищи в заголовке окон только Mozilla Firefox! И пофиг что там еще в этом заголовке! Если в заголовке имеется Mozilla Firefox, то это его (мохиллы) окно. Вот и блокируй его. Зачем тут "точное соответствие"?
Вадим, честное слово, чем больше я читаю твои посты в этой теме, тем меньше понимаю! Без обид!
Добавлено (08 Июля 2017, 20:01) ---------------------------------------------
ЦитатаAS3856 ()
Регулярка работает быстрее
Может она и работает быстрее, но в данном случае у Вадима что? Сотни окон открыты? Перебрать в цикле десяток-другой окон для NB пара пустяков, и даже никто не заметит разницы в скорости. Мудрим все... мудрим...
КАКАЯ, В КОНЦЕ-КОНЦОВ, ЗАДАЧА КОНКРЕТНО ПОСТАВЛЕНА?
А может просто я такой тупой..... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Регулярка тут не поможет, т.к. сама задача поставлена неверно!
Именно регулярка здесь поможет для ускорения процесса поиска.
Цитата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] и именно его искать в строке заголовка.
Если [Result] равно 1, то в строке есть какое то слово или словосочетание из всего списка, если 0, то нет.
Что еще лучшего тут можно городить?
ЦитатаВадим ()
Я смотрел эту команду, но отказался по той причине, что искать мне нужно не по шаблону, а по точному соответствию.
Эта команда ищет не по шаблону, а по тому, что ты ей скормишь. Выше конструкция выражения работает примерно так: Найти точное соответствие слову или словосочетанию: Mozilla Firefox или Поиск выражения или Mozilla или Firefox или еще какое то выражение .... и т.д. по всему списку.
Если что то одно будет найдено, поиск прерывается и в переменную [Result] возвращается 1, если ничего не найдено - 0.
Добавлено (08 Июля 2017, 21:44) ---------------------------------------------
Цитатаmishem ()
[^"\wА-я]
Опять тупо скопировал. Чтобы поиск проходил по всем русским буквам нужно диапазон А-я заменить на а-Я
Добавлено (08 Июля 2017, 21:46) --------------------------------------------- И да, в самом начале регулярки нужно подставить (?ir) i это поиск проходить будет не зависимо от регистра r будет искать и кириллицу
В итоге получается нам нужно распарсить список, и в цикле искать совпадения в заголовках окон. Это может быть долгий и нудный процесс/
А зачем "парсить" список (кстати, команда NB StrParse справится с этой задачей ни чуть не хуже), когда его можно заранее составить (на бумажке) и потом просто грузить в ListBox через LoadVariables (а лучше вообще сразу в массив)?. Ведь крутить цикл все-равно надо будет необушными командами.
Цитатаmishem ()
Если [Result] равно 1, то в строке есть какое то слово или словосочетание из всего списка, если 0, то нет.
А в чем тут "преимущество" регулярки чего-то не пойму? См. чуть выше.
Что-то я совсем отупел похоже.... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
В принципе точное соответствие может быть и не нужно. AS3856, затронул правильно тему с ключем. Если по уму, то как бы нужно предвидеть все варианты. Но в данной задаче, подозреваю что у Вадима не список слов, а список словосочетаний. Исходя из этого, метасимволы \b или конструкцию [^"\wА-я] можно и не ставить. здесь как бы Вадиму нужно определится, нужно это все, или нет. Если нет, тогда все на много проще. Просто в списке заменяем все [#13][#10] или [#13], какой там используется у него разделитель на символ |. И фсе. Скармливаем в переменную [lists] и запускаем команду. Все на самом деле просто, чем кажется. Не хочешь читать хелп?
И да, в самом начале регулярки нужно подставить (?ir) i это поиск проходить будет не зависимо от регистра r будет искать и кириллицу
Я смотрю с этими регулярками столько геморроя, что всякое желание смотреть в их сторону отпадает. Пусть NB-скрипт справится с задачей на полсекунды дольше, зато все проще раз в сто! Delphi и то понятнее будет! - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Как зачем? Ну можно не парсить, можно сразу в цикле перебирать. Ключевое слово цикл. Парсит быстро, но даже парсить будет медленнее, то есть за это время уже отработает регулярка.
ЦитатаPeter ()
А в чем тут "преимущество" регулярки чего-то не пойму?
Не надо парсить, не нужен цикл. Регулярка сразу ищет по всем заданным словосочетаниям. Не хочешь читать хелп?
Это то, что я не десятке не сижу? Пардон, но мне мои мозги еще пока нужны! Вот когда мозг совсем перестанет быть нужным, тогда на десятку и перейду (если доживу, конечно). Ведь тогда уже все пофиг будет!
Цитатаmishem ()
Не надо парсить, не нужен цикл. Регулярка сразу ищет по всем заданным словосочетаниям.
Понятно! Но:
ЦитатаPeter ()
Я смотрю с этими регулярками столько геморроя, что всякое желание смотреть в их сторону отпадает. Пусть NB-скрипт справится с задачей на полсекунды дольше, зато все проще раз в сто!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Я смотрю с этими регулярками столько геморроя, что всякое желание смотреть в их сторону отпадает.
Там не столько геморроя, там просто нужно все это выучить и понять. На самом деле интересная вещь, даже может быть интереснее чем делфи. Там столько тонкостей... Желание нужно и терпение.
Я по сей день в ни дуб дубом. Так, вершков нахватался и методом тыка. А там возможностей для поиска текста, выше крыше. Но тоже есть предел.
Добавлено (08 Июля 2017, 22:10) ---------------------------------------------
ЦитатаPeter ()
Пусть NB-скрипт справится с задачей на полсекунды дольше, зато все проще раз в сто!
Петр, там не пол секунды. Да и скрипта в НБ может понадобится написать пару страниц, то что в регулярке сделает одна сточка. В НБ написать! Не хочешь читать хелп?
даже может быть интереснее чем делфи. Там столько тонкостей... Желание нужно и терпение.
А ты думаешь, что в Delphi "тонкостей" мало? Просто в Delphi есть система и логика, его можно понять умом, а в регулярках (как я понимаю) нужно просто запоминать. Впрочем, тебе виднее. Только тогда непонятно, почему ты забросил Delphi? Сейчас бы уже столько плагинов понаделал! Эсперальта бы умер от зависти!
Цитатаmishem ()
Да и скрипта в НБ может понадобится написать пару страниц,
Какая пара страниц? Перекрестись! В варианте Вадима вообще все просто как мычание! И потому я не пойму почему такая ерунда требует такого долгого обсуждения? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Вот смотри, пример Вадима. Найти заголовок в тексте из 1000 строк с помощью НБ - не проблема. Естественно зачем здесь регулярка? НБ сама справится на раз.
А в итоге нам нужно другое, найти 1000 (может больше) возможных вариантов в одной строке. И уже для НБ это посильная, но трудоемкая задача.
А если усложнить задачу? Нужно найти 1000 возможных вариантов, но чтобы перед найденным совпадением не было к примеру запятых, чтобы это совпадение было началом предложения, чтобы в конце стояла точка, и это было не последнее предложение в тексте.
Можно еще добавить условий. Регулярка это сделает за долю секунды, а НБ?
Добавлено (08 Июля 2017, 22:21) ---------------------------------------------
ЦитатаPeter ()
а в регулярках (как я понимаю) нужно просто запоминать. Впрочем, тебе виднее.
Нет, не правильно понимаешь. Там нужна именно система и логика. Возможность просчитать все возможные варианты.
Добавлено (08 Июля 2017, 22:24) ---------------------------------------------
ЦитатаPeter ()
Только тогда непонятно, почему ты забросил Delphi?
Да не забросил я, временно отложил. НБ кстати тоже. Своих заморочек сейчас хватает. Просто сидеть за компом нет времени. Я сейчас захожу на форумы почитать, да кино посмотреть. Ну найти что то нужное в интернете. И фсе. Интерес ко всему как то поугас. Не хочешь читать хелп?
А в итоге нам нужно другое, найти 1000 (может больше) возможных вариантов в одной строке. И уже для НБ это посильная, но трудоемкая задача.
Согласен!
Цитатаmishem ()
Можно еще добавить условий. Регулярка это сделает за долю секунды, а НБ?
Тоже согласен!
Можно придумать еще не один десяток случаев, когда регулярка справится быстрее, но я говорю о простых вещах, например, как в случае Вадима. Всему свое время.
Добавлено (08 Июля 2017, 22:34) ---------------------------------------------
Цитатаmishem ()
Своих заморочек сейчас хватает. Просто сидеть за компом нет времени
У меня аналогичная ситуация, и работы сейчас выше крыши, комп включаю крайне редко. Кстати, начал тут (еще в мае) мутить один плагин, но думаю, что не будет он популярен, хотя идея сама по себе в духе моих последних излияний - показать как на одном и том же чужом компоненте, можно сделать плагин куда более удобный, функциональный и перпективней, чем у эсперальты.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Тут он прав, и проблема не в плагине (ему по-барабану какие строки обрабатывать, если конечно, в плагине реализована поддержка юникода), а в NB - она не понимает юникод, а чтобы загнать исходные данные в плагин, нужны команды NB, не каверкающие юникод-строки, что в данный момент невозможно. Ведь именно сама NB вставляет в параметры команд плагина эти самые исходные данные, и передает в плагин тип PAnsiChar, а не юникод. К тому же, еще и компонент, использующийся для обработкт регулярок, тоже должен поддерживать юникод. Технически конечно можно грузить в плагин данные напрямую в обход NB - например, из внешнего текстового файла (а плагин уже передаст в NB результат в нужном формате, и тут Ханс-Петер несколько поторопился хоронить идею, сказав, что "That can not work. The Delphi Compiler will throw a type error" - это если делать "в лоб".), но, в любом случае, в варианте NB это такие "костыли", что гм... сам понимаешь... Поэтому, боюсь, что NB никогда не будет работать с юникодом, т.к. поддержка оного, насколько мне известно, вообще даже не запланирована в NB разработчиками. Грустно? Грустно... Но, такова "селяви" (как говорят "у них"), увы...
Цитатаmishem ()
Что за плагин.
Может в сторону регулярог глянешь?
Боюсь, что опять я тебя разочарую - даже не планируется. А как ты думаешь - для чего я тут AS3856 все окучиваю? Аккурат для него тема.
Беда всего необушного плагинотворения заключается в том, что творцы плагинов делают только то, что им самим либо нужно, либо - интересно. И интерес этот далеко не всем интересен (каламбур). Это только эсперальта лепит все подряд, без разбора, что только отыщет бесплатного в интернете. Потому у него такой хлам и получается, а своих собственных идей (я бы даже скорее подумал - знаний) у него практически нет.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
читаем ВНИМАТЕЛЬНО здесь. Для кого все это пишется?
Вроде внимательно читаю :). Видимо не совсем понятно пишу.
Цитата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] и именно его искать в строке заголовка.
Регулярка работает быстрее, список загнать в переменную-и подставить в команде,- mishem, решил весь вопрос с синтаксисом записи - остаётся только вопрос кириллицей -тут смотреть надо конкретно(на худой конец напишу тебе функцию на vbs -там вроде нет проблем с кириллицей)
Спасибо, mishem, Андрей! С регулярками надо разбираться, конечно! Полезное дело. Осталось только время на это найти
Если надо запретить уход на другие сайты- то может прописать запрет в 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
Постоянно, с интервалом таймера, запускается подпрограмма, которая проверяет - есть ли нужный домен в адресной строке. Если нет (например, студент по ссылкам ушел на другой сайт), то возвращает браузер на страницу теста. Таким образом в необушном браузере ничего другого не открыть (и адресной строки нет, и если идти по ссылкам на странице, то все равно вернет на сервер тестирования).
Ошибка. У необушного броузера есть событие Before Navigate. Дальше читаем справку....
ЦитатаВадим ()
Если же верхнее окно не входит в "белый список", то срабатывает подпрограмма проверки по "черному списку".
Зачем проверять "белый список", когда можно сразу "черный" ?.... Впрочем, это не принципиально, можно и так
ЦитатаВадим ()
Если элемент массива (черного списка) обнаруживается в строке заголовка, то срабатывает подпрограмма"хендехох", лишая пользователя управления на 1 минуту (своего рода штраф).
ВОТ! А раньше было наоборот, по крайней мере, согласно кода, и в этом и была вся проблема:
ЦитатаВадим ()
Путаница в обсуждении возникла, вероятно, от того, что я попытался избавиться от цикла применив неверную для моей задачи логику "искать полученный заголовок в списке заготовленных стоп-слов". И я это понял (написав об этом), и на форуме мне об этом все написали
Правильно! И в чем сейчас загвоздка?
Вадим, от того, насколько грамотно ты сам составишь "черный список" и будет зависеть успех твоего поиска.
Сейчас я вообще уже не понимаю чего мы тут мусолим - все уже давно понятно. И нафига тут регулярки?
Добавлено (09 Июля 2017, 13:45) ---------------------------------------------
ЦитатаAS3856 ()
изменять hosts - файл
А это уже настоящее компьютерное хамство, пардон! За такие вещи надо просто убивать на месте! Вернуть обратно.... А если программа "вылетела"? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться