LuaFAR Search

Здесь можно обсудить ваш любимый плагин.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Здесь можно обсуждать плагин LuaFAR Search. (Анонс).
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Latest post of the previous page:

Sim wrote: умеет делать поиск когда весь файл воспринимается как одна строка, но почему нет этой опции при замене текста? Как бы нет препятствий для того чтобы такая опция таки была...
Неудачное название опции "Файл как строка" вводит в заблуждение. Плагин не читает все файлы одним куском, чтобы не затыкаться на очень больших файлах. Он читает кусками в несколько мегабайт, с перекрытием кусков. Этот алгоритм может не найти некоторые вхождения, если их длина больше размера перекрытия.

Для замены алгоритм с перекрытием кусков применять нельзя, ибо возможны некорректные замены, что можно трактовать как потерю данных. Единственное лечение здесь - действительно читать весь файл одним куском. Реализовать это не очень сложно, но сложно красиво обрабатывать ситуации, когда памяти не хватает. На данный момент замена из панелей - построчная. Может как-нибудь что-нибудь придумаю.
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

LuaFAR Search

Post by Sim »

Shmuel, файл может вообще не содержать переводов строки, тогда что? будет затык? да пусть лучше обработка такого большого текста на несколько мегабайт затянется немного, но работа будет выполнена. Я так считаю. Может добавить параметр с которым плагин будет считывать весь файл целиком и обрабатывать его как одну строку? а что из этого выйдет ... зависнет фар или просто долго будет работать операция это уже проблема пользователя, как бы знает что делает, и какого размера у него файлы.
Случайности не случайны.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Sim wrote: файл может вообще не содержать переводов строки, тогда что? будет затык?
Как раз наоборот, файл будет корректно обработан, если памяти хватит.
Sim wrote: да пусть лучше обработка такого большого текста на несколько мегабайт затянется немного, но работа будет выполнена.
Вы меня не поняли. Под большими файлами имеется в виду не несколько мегабайт, а гигабайты. В этом случае ситуация нехватки памяти может возникнуть на произвольном этапе обработки, при этом может и крэш произойти.

Я могу сделать такую замену как вы хотите (с чтением файла целиком "на страх и риск пользователя"), но только отдельным диалогом. Будет ли на это время в обозримом будущем - не знаю.
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

LuaFAR Search

Post by Sim »

Shmuel wrote: Я могу сделать такую замену как вы хотите (с чтением файла целиком "на страх и риск пользователя"), но только отдельным диалогом. Будет ли на это время в обозримом будущем - не знаю.
Буду ждать реализацию, у меня не бывает в работе на столько огромных файлов, обычно много мелких файлов в десятки, максимум сотни килобайт. Так что вариант замены текста с поиском в файле воспринимая его как одну строку было бы очень кстати, и кстати в редакторе тоже.
Случайности не случайны.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Sim wrote: Так что вариант замены текста с поиском в файле воспринимая его как одну строку было бы очень кстати, и кстати в редакторе тоже.
Но ведь в редакторе это есть - диалог "Многострочная замена". Именно то, что вы просите.
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

LuaFAR Search

Post by Sim »

Ага, не замечал его искал галку в обычной замене. Есть ли смысл отдельный диалог делать? почему бы не объединить в одном диалоге? ведь по сути интерфейс тот же.
Случайности не случайны.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Sim wrote: Есть ли смысл отдельный диалог делать?
Есть. Различия в работе значительные, поэтому не следует вызывать у пользователя иллюзию, что это всего лишь опция. Хотя бы то, что основной поиск с заменой даёт пользователю возможность заменять выборочно, а данный диалог - не даёт.
User avatar
Mauro72
Posts: 220
Joined: Wed 11 Aug, 2010 00:23
Location: Rosario, Argentina
Been thanked: 9 times

LuaFAR Search

Post by Mauro72 »

Update to last version..
lfs_spa.lng.7z
(2.13 KiB) Downloaded 230 times
Thanks.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Mauro72, thank you very much!
User avatar
Talker
Posts: 41
Joined: Thu 20 Oct, 2011 12:04
Has thanked: 5 times

LuaFAR Search

Post by Talker »

Попробовал менять подстроку на перевод строки (#0D#0A -> \r\n) работает отлично
А вот поиск перевода строки не получается - пишу в поле "Искать" \r\n с включенной опцией Регулярное выражение , ответ:

Code: Select all

   ╔═ LuaFAR Search [ 0.00 s ] ═╗
   ║    Выражение не найдено    ║
   ║           "\r\n"           ║
   ╟────────────────────────────╢
   ║           { OK }           ║
   ╚════════════════════════════╝
Что-то делаю не так?
Last edited by Talker on Mon 03 Apr, 2017 09:02, edited 1 time in total.
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

LuaFAR Search

Post by Sim »

Talker, все дело в том, что этот плагин делит весь текст на строки и обрабатывает по отдельности каждую строку, а символы \r\n служат разделителем, хотя конечно автор мог бы сделать чтобы строка включала в себя символы \r\n в конце строки это бы позволило заменять переводы строки на то что необходимо в конкретной ситуации.
Last edited by Sim on Mon 03 Apr, 2017 09:36, edited 1 time in total.
Случайности не случайны.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Talker,
Отдельного многострочного поиска нет, есть "многострочная замена", отдельным пунктом меню. Описано в справке (а также упоминается на данной странице обсуждения, см. выше).
Sim,
Данная утилита заменяет переводы строк. Что вы хотели сделать и что не получилось?
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

LuaFAR Search

Post by Sim »

да, многострочная замена реализована в отдельном диалоговом окне, и если не знаешь о ней то найти сложно, было бы удобнее если бы была галка в диалоге замены
Случайности не случайны.
User avatar
Talker
Posts: 41
Joined: Thu 20 Oct, 2011 12:04
Has thanked: 5 times

LuaFAR Search

Post by Talker »

Исходный файл:

Code: Select all

1

2

3

4
Форма поиска:

Code: Select all

    ╔═══════════════════════ Многострочная замена ═══════════════════════╗
    ║ Искать:                                                            ║
    ║ \r\n                                                              ↓║
    ║ Заменить на:                                                       ║
    ║ #                                                                 ↓║
    ║     [ ] Режим функции                                              ║
    ╟────────────────────────────────────────────────────────────────────╢
    ║ [x] Регулярное выражение          Библиотека: Far regex    ↓       ║
    ║ [ ] Учитывать регистр             [ ] Файл как строка              ║
    ║ [ ] Целые слова                   [ ] Многострочный режим          ║
    ║ [ ] Игнорировать пробелы                                           ║
    ╟────────────────────────────────────────────────────────────────────╢
    ║ [ ] Дополнительно                                                  ║
    ║ Начальный код:                    Конечный код:                    ║
    ║                                 ↓                                 ↓║
    ╟────────────────────────────────────────────────────────────────────╢
    ║                { Заменить } [ Подсчёт ] [ Отмена ]                 ║
    ╚════════════════════════════════════════════════════════════════════╝
Ответ:

Code: Select all

   ╔═ Многострочная замена ═╗
   ║  Выражение не найдено  ║
   ║         "\r\n"         ║
   ╟────────────────────────╢
   ║         { OK }         ║
   ╚════════════════════════╝
Что я делаю не так?
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

LuaFAR Search

Post by Shmuel »

Справка плагина wrote:На стадии поиска строки текста склеиваются с вставкой \n между ними, независимо от того, какой тип перевода строки есть у данной строки. На стадии замены вставляются переводы строк по умолчанию.
Таким образом, не используйте \r в ваших выражениях.
User avatar
Talker
Posts: 41
Joined: Thu 20 Oct, 2011 12:04
Has thanked: 5 times

LuaFAR Search

Post by Talker »

Да, все работает. Спасибо большое.
Post Reply

Return to “Обсуждение плагинов”