Page 3 of 4

Копирование файлов с временной панели с сохранение структуры папок

Posted: Tue 24 Apr, 2018 20:12
by buniak_a_h
Предлагаю небольшой макрос, копирующий файлы с временной панели, открытой на активной панели (извините за тавтологию) в директорий, открытый на неактивной панели. Макрос "рассовывает" копируемые файлы по подкаталогам в соответствии с их расположением в исходной структуре (относительно "корневой" папки). Особенно полезна для копирования результатов поиска файлов, помещённых на временную панель.





Опубликовал версию 1.5.2 в связи с изменениями в модулях
CopyFiles.TempPanel.lua.1.5.3.7z
(20.66 KiB) Downloaded 153 times

Копирование файлов с временной панели с сохранение структуры папок

Posted: Fri 30 Nov, 2018 06:44
by Shtirla

Latest post of the previous page:

Во первых Спасибо автору ! помог решить задачку быстрее.
во вторых выкладываю модификацию текущего макроса, замена идет поиском первых слэшей в пути, а не из Panel0, ибо накиданные с разных ресурсов файлы так не копировались


Копирование файлов с временной панели с сохранение структуры папок

Posted: Fri 30 Nov, 2018 10:58
by buniak_a_h
Shtirla wrote: Fri 30 Nov, 2018 06:44 замена идет поиском первых слэшей в пути, а не из Panel0, ибо накиданные с разных ресурсов файлы так не копировались
Я, конечно, в курсе. Но тут тоже проблема возникает: если поиск привёл к тому, что все найденные файлы расположены в одном подкаталоге (и его вложенных), то в качестве "корня" будет именно этот общий каталог. Меня это не устраивало. Поэтому я сделал макрос, "заточенный" под поиск по AltF7: при закрытии диалога поиска я запоминаю текущий каталог в локальную переменную, а при копировании использую это значение. Плюс - ясно. Минус - именно "заточенность" на поиск файла. Т.е. при занесении на временную панель файла, не находящегося в каталоге, бывшем текущим при начале поиска этот файл не будет найден. В связи с этим добавил следующее: если после копирования остались не скопированные файлы, то инициируется обычный поиск (F5).
Пример переделанного макроса будет помещён в первый пост темы чуть позже.

Копирование файлов с временной панели с сохранение структуры папок

Posted: Fri 30 Nov, 2018 11:00
by Shtirla
Ну как вариант, перед копированием можно проходить все файлы с путями, и искать общий знаменатель в начале строки

Копирование файлов с временной панели с сохранение структуры папок

Posted: Fri 30 Nov, 2018 11:18
by buniak_a_h
Shtirla wrote: Fri 30 Nov, 2018 11:00 Ну как вариант, перед копированием можно проходить все файлы с путями, и искать общий знаменатель в начале строки
Я писал, чем это меня не устраивает. Конкретно меня в конкретно моих задачах.

Копирование файлов с временной панели с сохранение структуры папок

Posted: Fri 30 Nov, 2018 11:22
by Shtirla
ну тогда не пойму чем вариант с заменой по первому\ не устраивает, он как раз таки полную структуру сохраняет

Копирование файлов с временной панели с сохранение структуры папок

Posted: Fri 30 Nov, 2018 14:02
by buniak_a_h
Shtirla wrote: Fri 30 Nov, 2018 11:22 ну тогда не пойму чем вариант с заменой по первому\ не устраивает, он как раз таки полную структуру сохраняет
Извините, невнимателен.
По первому - другая крайность. Например, все проекты находятся в подпапках D:\SUBSTR\F\Projects\Projecn#. Это - у меня. У юзера нет D:\SUBSTR\F\Projects\, а вместо этого есть C:\Program Files\ Я передаю файлы, относящиеся к одному проекту (Project#\) (не все - выборочно).
Я не критикую Ваш вариант: такой макрос у меня тоже есть (точнее, был). И именно убирал общее начало. Мне как раз удобнее стало копировать пути, начиная с папки, которая была текущей во время начала поиска. Да, узко специализированный получился скрипт. Но часто требуемый. В моих условиях, во всяком случае...

Копирование файлов с временной панели с сохранение структуры папок

Posted: Sun 15 Dec, 2019 12:57
by buniak_a_h
Опубликовал версию 1.5.2 . Связана с изменениями в модулях для совместимости с другими моими же скриптами. Если Вы их не используете, версию 1.5.2 можете не качать.

Копирование файлов с временной панели с сохранение структуры папок

Posted: Sun 15 Dec, 2019 15:47
by citRiks
buniak_a_h wrote: Sun 15 Dec, 2019 12:57 Опубликовал версию 1.5.2
Установил, работает, с другими макросами не конфликтует. Спасибо.

С учётом следующего. В архиве CopyFiles.TempPanel.1.5.2.7z вместо файла CopyFiles.TempPanelRus.lng лежит файл CopyFiles.TempPanel.lng с англоязычным содержанием и в кодировке 1251. Перевёл содержание на русский, сохранил в UTF-8 с BOM и переимевал файл. Тогда скрипт стал нормально работать в Фаре с русским языком.

Копирование файлов с временной панели с сохранение структуры папок

Posted: Sun 15 Dec, 2019 17:07
by buniak_a_h
citRiks wrote: Sun 15 Dec, 2019 15:47 вместо файла CopyFiles.TempPanelRus.lng лежит файл CopyFiles.TempPanel.lng с англоязычным содержанием и в кодировке 1251.
На самом деле это был эксперимент. С тех пор функция GetMsg сильно расширилась … :-)
Насколько я понимаю, это ни на что не влияет. Ну, кроме описания макроса во всяких браузерах. Но всё равно спасибо.

Копирование файлов с временной панели с сохранение структуры папок

Posted: Sun 15 Dec, 2019 17:51
by citRiks
buniak_a_h wrote: Sun 15 Dec, 2019 17:07 Насколько я понимаю, это ни на что не влияет
Кое на что, всё-таки, влияет. Например, в меню выбора макроса выводится описание макроса на английском. А если просто перевести текст на русский и сохранить его в 1251, то вывод будет и вовсе на тарабарском. Поэтому я и поправил файл как изложил выше.

Копирование файлов с временной панели с сохранение структуры папок

Posted: Tue 31 Dec, 2019 09:13
by citRiks
buniak_a_h,

В 5543 обеих разрядностей при нахождении в панелях после нажатия кнопки F5 на клавиатуре стало появляться красное .

Копирование файлов с временной панели с сохранение структуры папок

Posted: Tue 31 Dec, 2019 10:33
by buniak_a_h
Интересно… Видимо, когда-то изменился интерфейс к этой функции. Во всяком случае я нашёл такие же ошибочные конструкции не только в моём скрипте, но и в давным-давно скачанных (авторства таких гуру, как Smuel!) Если интересно, то может посыпаться MultiPanel, PanelFilter (там panel.GetPanelInfo(-1, 1)), [Плагин] Macro Panel — макро-браузер в панели (правда, теперь ссылка в нём указывает "в космос". Но скачать я успел)
Та же беда будет и в Gind_n_Go (Вы, по-моему, его смотрели). Лечится заменой panel.GetPanelInfo(0) на panel.GetPanelInfo(nil, 1). У себя поправлю.

Копирование файлов с временной панели с сохранение структуры папок

Posted: Tue 31 Dec, 2019 10:45
by buniak_a_h
Стоп! Исправил, и работать перестало … Надо искать …
--
upd
Всё правильно. Не работало по какой-то другой причине.

Копирование файлов с временной панели с сохранение структуры папок

Posted: Tue 31 Dec, 2019 10:46
by Shmuel
buniak_a_h wrote: Tue 31 Dec, 2019 10:33 Во всяком случае я нашёл такие же ошибочные конструкции не только в моём скрипте, но и в давным-давно скачанных (авторства таких гуру, как Smuel!)
Если не трудно, подскажите, в котором моём скрипте вы такое нашли. Сейчас сделал поиск по своим скриптам с регулярным выражением panel\.\w+\s*\(\s*\d, и ничего не нашлось.

Копирование файлов с временной панели с сохранение структуры папок

Posted: Tue 31 Dec, 2019 11:01
by buniak_a_h
Shmuel wrote: Tue 31 Dec, 2019 10:46 подскажите, в котором моём скрипте вы такое нашли
Там я привёл список.
PanelFilter (не знаю, какая версия - в самом скрипте не указано). Там написано:

Code: Select all

Author: Maxim Gonchar
Modifications: Shmuel Zeigerman
… … … 
panel.GetPanelInfo(-1, 1) -- (Строка 103)
Ну и Ваш панельный модуль, который мне посоветовали в качестве примера. Увы, теперь там "висячая ссылка", но был! А значит такой вариант вызова был узаконен

Копирование файлов с временной панели с сохранение структуры папок

Posted: Tue 31 Dec, 2019 11:17
by Shmuel
buniak_a_h wrote: Tue 31 Dec, 2019 11:01 PanelFilter (не знаю, какая версия - в самом скрипте не указано). Там написано:
Спасибо, нашёл. (Регулярное выражение поиска не учитывало возможность минуса перед цифрой).
Эта строчка принадлежала оригинальному автору, который писал данный скрипт много лет назад для Фар 1.75.
Надо будет строчку исправить и скрипт перевыложить.

Насчёт панельного модуля - ошибку не нашёл - просьба дать ссылку или прикрепить вашу копию.