LuaFAR Search

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

LuaFAR Search

Postby Shmuel » Fri 13 Nov, 2009 07:29

Здесь можно обсуждать плагин LuaFAR Search. (Анонс).

Shmuel
Posts: 4950
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

LuaFAR Search

Postby Shmuel » Wed 26 Oct, 2016 07:25

Latest post of the previous page:

Sim wrote:Source of the post умеет делать поиск когда весь файл воспринимается как одна строка, но почему нет этой опции при замене текста? Как бы нет препятствий для того чтобы такая опция таки была...

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

Для замены алгоритм с перекрытием кусков применять нельзя, ибо возможны некорректные замены, что можно трактовать как потерю данных. Единственное лечение здесь - действительно читать весь файл одним куском. Реализовать это не очень сложно, но сложно красиво обрабатывать ситуации, когда памяти не хватает. На данный момент замена из панелей - построчная. Может как-нибудь что-нибудь придумаю.

User avatar
Sim
Posts: 349
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 1 time
Contact:

LuaFAR Search

Postby Sim » Wed 26 Oct, 2016 10:07

Shmuel, файл может вообще не содержать переводов строки, тогда что? будет затык? да пусть лучше обработка такого большого текста на несколько мегабайт затянется немного, но работа будет выполнена. Я так считаю. Может добавить параметр с которым плагин будет считывать весь файл целиком и обрабатывать его как одну строку? а что из этого выйдет ... зависнет фар или просто долго будет работать операция это уже проблема пользователя, как бы знает что делает, и какого размера у него файлы.
Случайности не случайны.

Shmuel
Posts: 4950
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

LuaFAR Search

Postby Shmuel » Wed 26 Oct, 2016 10:40

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

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

User avatar
Sim
Posts: 349
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 1 time
Contact:

LuaFAR Search

Postby Sim » Wed 26 Oct, 2016 10:46

Shmuel wrote:Source of the post Я могу сделать такую замену как вы хотите (с чтением файла целиком "на страх и риск пользователя"), но только отдельным диалогом. Будет ли на это время в обозримом будущем - не знаю.

Буду ждать реализацию, у меня не бывает в работе на столько огромных файлов, обычно много мелких файлов в десятки, максимум сотни килобайт. Так что вариант замены текста с поиском в файле воспринимая его как одну строку было бы очень кстати, и кстати в редакторе тоже.
Случайности не случайны.

Shmuel
Posts: 4950
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

LuaFAR Search

Postby Shmuel » Wed 26 Oct, 2016 10:52

Sim wrote:Source of the post Так что вариант замены текста с поиском в файле воспринимая его как одну строку было бы очень кстати, и кстати в редакторе тоже.
Но ведь в редакторе это есть - диалог "Многострочная замена". Именно то, что вы просите.

User avatar
Sim
Posts: 349
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 1 time
Contact:

LuaFAR Search

Postby Sim » Wed 26 Oct, 2016 10:57

Ага, не замечал его искал галку в обычной замене. Есть ли смысл отдельный диалог делать? почему бы не объединить в одном диалоге? ведь по сути интерфейс тот же.
Случайности не случайны.

Shmuel
Posts: 4950
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

LuaFAR Search

Postby Shmuel » Wed 26 Oct, 2016 11:02

Sim wrote:Source of the post Есть ли смысл отдельный диалог делать?
Есть. Различия в работе значительные, поэтому не следует вызывать у пользователя иллюзию, что это всего лишь опция. Хотя бы то, что основной поиск с заменой даёт пользователю возможность заменять выборочно, а данный диалог - не даёт.

User avatar
Mauro72
Posts: 206
Joined: Wed 11 Aug, 2010 00:23
Location: Rosario, Argentina
Been thanked: 6 times

LuaFAR Search

Postby Mauro72 » Wed 26 Oct, 2016 13:43

Update to last version..
lfs_spa.lng.7z
(2.13 KiB) Downloaded 15 times

Thanks.

Shmuel
Posts: 4950
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

LuaFAR Search

Postby Shmuel » Wed 26 Oct, 2016 14:39

Mauro72, thank you very much!

Talker
Posts: 30
Joined: Thu 20 Oct, 2011 12:04
Has thanked: 2 times

LuaFAR Search

Postby Talker » Mon 03 Apr, 2017 09:00

Попробовал менять подстроку на перевод строки (#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: 349
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 1 time
Contact:

LuaFAR Search

Postby Sim » Mon 03 Apr, 2017 09:36

Talker, все дело в том, что этот плагин делит весь текст на строки и обрабатывает по отдельности каждую строку, а символы \r\n служат разделителем, хотя конечно автор мог бы сделать чтобы строка включала в себя символы \r\n в конце строки это бы позволило заменять переводы строки на то что необходимо в конкретной ситуации.
Last edited by Sim on Mon 03 Apr, 2017 09:36, edited 1 time in total.
Случайности не случайны.

Shmuel
Posts: 4950
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

LuaFAR Search

Postby Shmuel » Mon 03 Apr, 2017 09:39

Talker,
Отдельного многострочного поиска нет, есть "многострочная замена", отдельным пунктом меню. Описано в справке (а также упоминается на данной странице обсуждения, см. выше).
Sim,
Данная утилита заменяет переводы строк. Что вы хотели сделать и что не получилось?

User avatar
Sim
Posts: 349
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 1 time
Contact:

LuaFAR Search

Postby Sim » Mon 03 Apr, 2017 09:50

да, многострочная замена реализована в отдельном диалоговом окне, и если не знаешь о ней то найти сложно, было бы удобнее если бы была галка в диалоге замены
Случайности не случайны.

Talker
Posts: 30
Joined: Thu 20 Oct, 2011 12:04
Has thanked: 2 times

LuaFAR Search

Postby Talker » Mon 03 Apr, 2017 10:39

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

Code: Select all

1

2

3

4

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

Code: Select all

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

Ответ:

Code: Select all

   ╔═ Многострочная замена ═╗
   ║  Выражение не найдено  ║
   ║         "\r\n"         ║
   ╟────────────────────────╢
   ║         { OK }         ║
   ╚════════════════════════╝


Что я делаю не так?

Shmuel
Posts: 4950
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 123 times

LuaFAR Search

Postby Shmuel » Mon 03 Apr, 2017 11:04

Справка плагина wrote:На стадии поиска строки текста склеиваются с вставкой \n между ними, независимо от того, какой тип перевода строки есть у данной строки. На стадии замены вставляются переводы строк по умолчанию.
Таким образом, не используйте \r в ваших выражениях.

Talker
Posts: 30
Joined: Thu 20 Oct, 2011 12:04
Has thanked: 2 times

LuaFAR Search

Postby Talker » Mon 03 Apr, 2017 12:19

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


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

Who is online

Users browsing this forum: No registered users and 16 guests