Universal Viewer - аналог Lister
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Volniy
1. на предмет "поиск только в пределах одной строки": взял исходник, естественно многострочный, разделители CRLF. Все ищется не только в первой строке, а по всему тексту.
Так что что ты имел в виду? В пределах до первого вхождения #0?
Непонятно.
2. Тотал не сообщает о некорректности RegEx. Например вводим один слеш: \ . Строка не найдена.
3. Не понял тебя, Volniy, насчет (?m). Зачем он нужен: и без него текст рассматривается как многосторчный. Точнее, как один поток.
4. В Тотале работает поиск с RegEx + поиск назад. Очень странно.
Это вообще-то несовместимые опции.
Сейчас решил проверить Тотал:Оказывается отсутствует и главное ограничение Тоталовских библиотек RegEx, а именно поиск только в пределах одной строки. Попробовал в UV и увидел, что там простое применение модификатора (?m) в регулярном выражении позволяет производить корректный поиск, рассматривая текст файла как многострочный.
1. на предмет "поиск только в пределах одной строки": взял исходник, естественно многострочный, разделители CRLF. Все ищется не только в первой строке, а по всему тексту.
Так что что ты имел в виду? В пределах до первого вхождения #0?
Непонятно.
2. Тотал не сообщает о некорректности RegEx. Например вводим один слеш: \ . Строка не найдена.
3. Не понял тебя, Volniy, насчет (?m). Зачем он нужен: и без него текст рассматривается как многосторчный. Точнее, как один поток.
4. В Тотале работает поиск с RegEx + поиск назад. Очень странно.
Это вообще-то несовместимые опции.
Я не говорил, что поиск идет только в первой строке. Я говорил (и это подтвержает Гислер в своей справке к ТС) что поиск с RegEx производится внутри отдельной строки. Это означает, что нельзя найти фрагмент текста, расположенный сразу в двух (или более) смежных строках.Alextp писал(а):1. на предмет "поиск только в пределах одной строки": взял исходник, естественно многострочный, разделители CRLF. Все ищется не только в первой строке, а по всему тексту.
Я говорил не об этом. Я вводил корректные выражения а он их некорректно обрабатывал. В том числе не сообщал пользователю ничего, когда ничего не было найдено или находил всякую чушь в ситуации, когда найти ничего не должен был (см п.1).Alextp писал(а):2. Тотал не сообщает о некорректности RegEx. Например вводим один слеш: \ . Строка не найдена.
С точностью наоборот. Многострочный это когда текст рассматривается не как единая строка, а как множество строк. (?m) включает именно такое рассмотрение, (?-m) - выключает.Alextp писал(а):3. Не понял тебя, Volniy, насчет (?m). Зачем он нужен: и без него текст рассматривается как многострочный. Точнее, как один поток.
В принцине я считаю несовместимыми при поиске с регекспами и опции "Слово целиком" и "С учетом регистра", так как это все задается в самих регулярных выражениях. Как, например, обрабатывается ситуация, когда стоит галочка "С учетом регистра" и в то же время в начале регекспа (а не дай бог еще и внутри) стоит модификатор (?i) (то есть не учитывать регистр)? У какой опции должен быть выше приоритет? Думаю, что если человек способен написать регекс для своих нужд, то уж с регистром-то символов он как-нибудь да разберетсяAlextp писал(а):4. В Тотале работает поиск с RegEx + поиск назад. Очень странно.
Это вообще-то несовместимые опции.
А что касается "Слово целиком", то так называемые "якоря" для привязки к границе слов (\b), а также "пробельные" метасимволы (\s) делают такой поиск неоднозначным до абсурда, особенно если разыскивается фрагмент, состоящий из нескольких(!) слов.
Мое личное мнение такое, что регулярные выражения (полноценно реализованные, конечно) лучше вообще не мешать ни с какими обычными опциями поиска в тексте. Это только ухудшает качество поиска.
Volniy
Это ляп со стороны Гислера.
Если ты указываешь (?i), то не стоит включать "С учетом регистра",
если указываешь /b или /pZ, то не стоит включать "Слова целиком".
"Слова целиком", это просто обрамление регэкспа слева/справа символами /b.
Конфликта с несколькими словами быть не должно.
Сложные (включающие (?i), /b, /pZ, ^ и так далее) лучше не мешать.
А простые можно.
Ясно.Я говорил (и это подтвержает Гислер в своей справке к ТС) что поиск с RegEx производится внутри отдельной строки. Это означает, что нельзя найти фрагмент текста, расположенный сразу в двух (или более) смежных строках.
Не об этом. Это просто пример (в чем некорректность поиска Тотала).Я говорил не об этом.Alextp писал(а):2. Тотал не сообщает о некорректности RegEx. Например вводим один слеш: \ . Строка не найдена.
Это ляп со стороны Гислера.
В принципе, они совместимы, с большинством регул. выражений.В принцине я считаю несовместимыми при поиске с регекспами и опции "Слово целиком" и "С учетом регистра", так как это все задается в самих регулярных выражениях.
Если ты указываешь (?i), то не стоит включать "С учетом регистра",
если указываешь /b или /pZ, то не стоит включать "Слова целиком".
"Слова целиком", это просто обрамление регэкспа слева/справа символами /b.
Конфликта с несколькими словами быть не должно.
Мое личное мнение такое, что регулярные выражения (полноценно реализованные, конечно) лучше вообще не мешать ни с какими обычными опциями поиска в тексте. Это только ухудшает качество поиска.
Сложные (включающие (?i), /b, /pZ, ^ и так далее) лучше не мешать.
А простые можно.
Новости (аннонс) про UV постоянно публикует ixbt.com. К чему бы это.
Написали на nnm.ru.
Вчера написали в двух англ-х блогах:
http://labnol.blogspot.com/2007/03/sing ... ideos.html
http://www.raymond.cc/blog/archives/200 ... -atviewer/
Написали на nnm.ru.
Вчера написали в двух англ-х блогах:
http://labnol.blogspot.com/2007/03/sing ... ideos.html
http://www.raymond.cc/blog/archives/200 ... -atviewer/
Полный редизайн страницы
(без русской версии. По-русски только описание и FAQ.)
(без русской версии. По-русски только описание и FAQ.)
- DeathStalker
- Сообщения: 331
- Зарегистрирован: Пт сен 01, 2006 10:53
- Откуда: Санкт-Петербург
У меня возникает такая ошибка: после просмотра ini файла с помощью плагина IniEd при закрытии UV windows сообщает
Используемая версия ATViewer 1.5.10.0
При использовании других плагинов подобной ошибки ненаблюдается.Universal Viewer (ATViewer) - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.
Runtime error 216 ...
Используемая версия ATViewer 1.5.10.0
Гугль - это Матрица, чем меньше его спрашивать, тем слабее будут машины во время Великой Битвы
TC10.00b6 x86 Windows 10 x64 (Windows 7 x64)
TC10.00b6 x86 Windows 10 x64 (Windows 7 x64)
DeathStalker
Подтверждаю.
- Странно, но креша нет, если до вызова плагина IniEd хоть раз вызвать диалог настройки плагинов (даже ничего в нем не сохраняя - вызов, Отмена).
- Креш где-то в недрах VCL, в TApplication.WndProc. Отладить не знаю как...
Попробую написать автору IniEd, может он какой хитрый трюк применяет. Типа, оконную процедуру меняет или еще что-то... Спасибо за репорт.
Подтверждаю.
- Странно, но креша нет, если до вызова плагина IniEd хоть раз вызвать диалог настройки плагинов (даже ничего в нем не сохраняя - вызов, Отмена).
- Креш где-то в недрах VCL, в TApplication.WndProc. Отладить не знаю как...
Попробую написать автору IniEd, может он какой хитрый трюк применяет. Типа, оконную процедуру меняет или еще что-то... Спасибо за репорт.
- DeathStalker
- Сообщения: 331
- Зарегистрирован: Пт сен 01, 2006 10:53
- Откуда: Санкт-Петербург
Alextp
Используя твой компонент ATViewer написал такую маленькую програмку
сделал exeшник плагин inied запускается, при закрытии никакой ошибки не возникает
Используя твой компонент ATViewer написал такую маленькую програмку
Код: Выделить всё
procedure TForm1.FormCreate(Sender: TObject);
begin
ATViewer1.AddPlugin('c:\Program Files\Borland\Delphi7\Projects\cad\inied.wlx', '');
ATViewer1.InitPluginsParams(Form1, 'c:\Program Files\Borland\Delphi7\Projects\cad\inied.ini');
ATViewer1.Open('c:\Program Files\Borland\Delphi7\Projects\cad\CADView.ini');
end;
procedure TForm1.FormResize(Sender: TObject);
var
Rect1: TRect;
begin
Rect1.Left:=0;
Rect1.Top:=0;
Rect1.Right:=ClientWidth;
Rect1.Bottom:=ClientHeight;
ATViewer1.ResizeActivePlugin(Rect1);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ATViewer1.CloseActivePlugin;
end;Гугль - это Матрица, чем меньше его спрашивать, тем слабее будут машины во время Великой Битвы
TC10.00b6 x86 Windows 10 x64 (Windows 7 x64)
TC10.00b6 x86 Windows 10 x64 (Windows 7 x64)
-
DrShark
- Сообщения: 911
- Зарегистрирован: Сб окт 21, 2006 20:27
- Откуда: Kyiv, Ukraine
- Контактная информация:
Я вот посмотрел в UV:
при изменении опции показа рамки (версия 1.5.8.0)
на НЕ txt-файлах (например, EML, установлен соотв. Lister-плагин) визуально ничего не меняется (рамка остаётся в любом случае). Причём непосредственно после переключения и нажатия OK появляется чёрный экаран, а с помощью нажатия 4 можно переключится... в режим мультимедиа (запускается WMP ActiveX). Может, это и нормальное поведение, но вернутся на просмотр eml с помощью eml-плагина по 4 не удастся.
при изменении опции показа рамки (версия 1.5.8.0)
на НЕ txt-файлах (например, EML, установлен соотв. Lister-плагин) визуально ничего не меняется (рамка остаётся в любом случае). Причём непосредственно после переключения и нажатия OK появляется чёрный экаран, а с помощью нажатия 4 можно переключится... в режим мультимедиа (запускается WMP ActiveX). Может, это и нормальное поведение, но вернутся на просмотр eml с помощью eml-плагина по 4 не удастся.
DrShark
Но это пожно поменять.
Рамка показывается *только* в режимах, где контролы мои: в режиме Плагины все зависит от плагина. У большинства плагинов рамки нет (как в Листере), у некоторых есть. Но переключить это я не могу.на НЕ txt-файлах (например, EML, установлен соотв. Lister-плагин) визуально ничего не меняется
Режим Плагины имеет шорткат 7 (а не 4!).а с помощью нажатия 4 можно переключится... в режим мультимедиа (запускается WMP ActiveX). Может, это и нормальное поведение, но вернутся на просмотр eml с помощью eml-плагина по 4 не удастся.
Но это пожно поменять.
-
DrShark
- Сообщения: 911
- Зарегистрирован: Сб окт 21, 2006 20:27
- Откуда: Kyiv, Ukraine
- Контактная информация:
Так что, рамка - не твой контрол? Или ты имеешь ввиду, что, например, если рамка включена, когда я отключаю ее при просмотре с использованием плагина, она может не откльюится? А как плагины узнают, что в UV есть рамка? К тому же я 4 жал, а это не режим плагинов...Рамка показывается *только* в режимах, где контролы мои: в режиме Плагины все зависит от плагина. У большинства плагинов рамки нет (как в Листере), у некоторых есть. Но переключить это я не могу.
И ещё, как объяснить это:
- там не рамки, ничё - просто чёрный фон. Выйти из него можно по 4-ке и, как ты сказал, по 7-ке.Причём непосредственно после переключения и нажатия OK появляется чёрный экаран