Universal Viewer - аналог Lister

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Выпущена версия 1.5.10.0.
По сравнению с бетой изменение одно: опция WebAcceptAllFiles теперь = 1 (по умолчанию).
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Volniy
Оказывается отсутствует и главное ограничение Тоталовских библиотек RegEx, а именно поиск только в пределах одной строки. Попробовал в UV и увидел, что там простое применение модификатора (?m) в регулярном выражении позволяет производить корректный поиск, рассматривая текст файла как многострочный.
Сейчас решил проверить Тотал:

1. на предмет "поиск только в пределах одной строки": взял исходник, естественно многострочный, разделители CRLF. Все ищется не только в первой строке, а по всему тексту.

Так что что ты имел в виду? В пределах до первого вхождения #0?
Непонятно.

2. Тотал не сообщает о некорректности RegEx. Например вводим один слеш: \ . Строка не найдена.

3. Не понял тебя, Volniy, насчет (?m). Зачем он нужен: и без него текст рассматривается как многосторчный. Точнее, как один поток.

4. В Тотале работает поиск с RegEx + поиск назад. Очень странно.
Это вообще-то несовместимые опции.
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

Alextp писал(а):1. на предмет "поиск только в пределах одной строки": взял исходник, естественно многострочный, разделители CRLF. Все ищется не только в первой строке, а по всему тексту.
Я не говорил, что поиск идет только в первой строке. Я говорил (и это подтвержает Гислер в своей справке к ТС) что поиск с RegEx производится внутри отдельной строки. Это означает, что нельзя найти фрагмент текста, расположенный сразу в двух (или более) смежных строках.
Alextp писал(а):2. Тотал не сообщает о некорректности RegEx. Например вводим один слеш: \ . Строка не найдена.
Я говорил не об этом. Я вводил корректные выражения а он их некорректно обрабатывал. В том числе не сообщал пользователю ничего, когда ничего не было найдено или находил всякую чушь в ситуации, когда найти ничего не должен был (см п.1).
Alextp писал(а):3. Не понял тебя, Volniy, насчет (?m). Зачем он нужен: и без него текст рассматривается как многострочный. Точнее, как один поток.
С точностью наоборот. Многострочный это когда текст рассматривается не как единая строка, а как множество строк. (?m) включает именно такое рассмотрение, (?-m) - выключает.
Alextp писал(а):4. В Тотале работает поиск с RegEx + поиск назад. Очень странно.
Это вообще-то несовместимые опции.
В принцине я считаю несовместимыми при поиске с регекспами и опции "Слово целиком" и "С учетом регистра", так как это все задается в самих регулярных выражениях. Как, например, обрабатывается ситуация, когда стоит галочка "С учетом регистра" и в то же время в начале регекспа (а не дай бог еще и внутри) стоит модификатор (?i) (то есть не учитывать регистр)? У какой опции должен быть выше приоритет? Думаю, что если человек способен написать регекс для своих нужд, то уж с регистром-то символов он как-нибудь да разберется :wink:
А что касается "Слово целиком", то так называемые "якоря" для привязки к границе слов (\b), а также "пробельные" метасимволы (\s) делают такой поиск неоднозначным до абсурда, особенно если разыскивается фрагмент, состоящий из нескольких(!) слов.

Мое личное мнение такое, что регулярные выражения (полноценно реализованные, конечно) лучше вообще не мешать ни с какими обычными опциями поиска в тексте. Это только ухудшает качество поиска.
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Volniy
Я говорил (и это подтвержает Гислер в своей справке к ТС) что поиск с RegEx производится внутри отдельной строки. Это означает, что нельзя найти фрагмент текста, расположенный сразу в двух (или более) смежных строках.
Ясно.
Alextp писал(а):2. Тотал не сообщает о некорректности RegEx. Например вводим один слеш: \ . Строка не найдена.
Я говорил не об этом.
Не об этом. Это просто пример (в чем некорректность поиска Тотала).
Это ляп со стороны Гислера.
В принцине я считаю несовместимыми при поиске с регекспами и опции "Слово целиком" и "С учетом регистра", так как это все задается в самих регулярных выражениях.
В принципе, они совместимы, с большинством регул. выражений.
Если ты указываешь (?i), то не стоит включать "С учетом регистра",
если указываешь /b или /pZ, то не стоит включать "Слова целиком".

"Слова целиком", это просто обрамление регэкспа слева/справа символами /b.
Конфликта с несколькими словами быть не должно.
Мое личное мнение такое, что регулярные выражения (полноценно реализованные, конечно) лучше вообще не мешать ни с какими обычными опциями поиска в тексте. Это только ухудшает качество поиска.

Сложные (включающие (?i), /b, /pZ, ^ и так далее) лучше не мешать.
А простые можно.
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Новости (аннонс) про UV постоянно публикует ixbt.com. К чему бы это.

Написали на nnm.ru.

Вчера написали в двух англ-х блогах:
http://labnol.blogspot.com/2007/03/sing ... ideos.html
http://www.raymond.cc/blog/archives/200 ... -atviewer/
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

Alextp писал(а):К чему бы это.
Пришла пора подумать о платной версии ("Pro") :wink:
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Volniy
Я уже думаю над этим. ;)
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Полный редизайн страницы
(без русской версии. По-русски только описание и FAQ.)
Аватара пользователя
DeathStalker
Сообщения: 331
Зарегистрирован: Пт сен 01, 2006 10:53
Откуда: Санкт-Петербург

Сообщение DeathStalker »

У меня возникает такая ошибка: после просмотра ini файла с помощью плагина IniEd при закрытии UV windows сообщает
Universal Viewer (ATViewer) - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.
Runtime error 216 ...
При использовании других плагинов подобной ошибки ненаблюдается.
Используемая версия ATViewer 1.5.10.0
Гугль - это Матрица, чем меньше его спрашивать, тем слабее будут машины во время Великой Битвы
TC10.00b6 x86 Windows 10 x64 (Windows 7 x64)
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

DeathStalker
Подтверждаю.

- Странно, но креша нет, если до вызова плагина IniEd хоть раз вызвать диалог настройки плагинов (даже ничего в нем не сохраняя - вызов, Отмена).
- Креш где-то в недрах VCL, в TApplication.WndProc. Отладить не знаю как...

Попробую написать автору IniEd, может он какой хитрый трюк применяет. Типа, оконную процедуру меняет или еще что-то... Спасибо за репорт.
Аватара пользователя
DeathStalker
Сообщения: 331
Зарегистрирован: Пт сен 01, 2006 10:53
Откуда: Санкт-Петербург

Сообщение DeathStalker »

Alextp
Используя твой компонент 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;
сделал exeшник плагин inied запускается, при закрытии никакой ошибки не возникает
Гугль - это Матрица, чем меньше его спрашивать, тем слабее будут машины во время Великой Битвы
TC10.00b6 x86 Windows 10 x64 (Windows 7 x64)
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Странно...

//Спасибо за программку: надо сделать демо такого вида, из 20 строчек кода. Которое будет загружать жестко заданный плагин.
DrShark
Сообщения: 911
Зарегистрирован: Сб окт 21, 2006 20:27
Откуда: Kyiv, Ukraine
Контактная информация:

Сообщение DrShark »

Я вот посмотрел в UV:
при изменении опции показа рамки (версия 1.5.8.0)
на НЕ txt-файлах (например, EML, установлен соотв. Lister-плагин) визуально ничего не меняется (рамка остаётся в любом случае). Причём непосредственно после переключения и нажатия OK появляется чёрный экаран, а с помощью нажатия 4 можно переключится... в режим мультимедиа (запускается WMP ActiveX). Может, это и нормальное поведение, но вернутся на просмотр eml с помощью eml-плагина по 4 не удастся.
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

DrShark
на НЕ txt-файлах (например, EML, установлен соотв. Lister-плагин) визуально ничего не меняется
Рамка показывается *только* в режимах, где контролы мои: в режиме Плагины все зависит от плагина. У большинства плагинов рамки нет (как в Листере), у некоторых есть. Но переключить это я не могу.
а с помощью нажатия 4 можно переключится... в режим мультимедиа (запускается WMP ActiveX). Может, это и нормальное поведение, но вернутся на просмотр eml с помощью eml-плагина по 4 не удастся.
Режим Плагины имеет шорткат 7 (а не 4!).
Но это пожно поменять.
DrShark
Сообщения: 911
Зарегистрирован: Сб окт 21, 2006 20:27
Откуда: Kyiv, Ukraine
Контактная информация:

Сообщение DrShark »

Рамка показывается *только* в режимах, где контролы мои: в режиме Плагины все зависит от плагина. У большинства плагинов рамки нет (как в Листере), у некоторых есть. Но переключить это я не могу.
Так что, рамка - не твой контрол? Или ты имеешь ввиду, что, например, если рамка включена, когда я отключаю ее при просмотре с использованием плагина, она может не откльюится? А как плагины узнают, что в UV есть рамка? К тому же я 4 жал, а это не режим плагинов...
И ещё, как объяснить это:
Причём непосредственно после переключения и нажатия OK появляется чёрный экаран
- там не рамки, ничё - просто чёрный фон. Выйти из него можно по 4-ке и, как ты сказал, по 7-ке.
Ответить