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

Здесь обсуждается всё, что касается макросов.
buniak_a_h
Posts: 2031
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

Предлагаю небольшой макрос, копирующий файлы с временной панели, открытой на активной панели (извините за тавтологию) в директорий, открытый на неактивной панели. Макрос "рассовывает" копируемые файлы по подкаталогам в соответствии с их расположением в исходной структуре (относительно "корневой" папки). Особенно полезна для копирования результатов поиска файлов, помещённых на временную панель.





Опубликовал версию 1.5.2 в связи с изменениями в модулях
CopyFiles.TempPanel.lua.1.5.3.7z
(20.66 KiB) Downloaded 38 times
Last edited by buniak_a_h on Tue 31 Dec, 2019 12:38, edited 3 times in total.
Shtirla
Posts: 117
Joined: Wed 04 Mar, 2009 20:09
Has thanked: 10 times
Been thanked: 2 times

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

Post by Shtirla »

Latest post of the previous page:

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

buniak_a_h
Posts: 2031
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

Shtirla wrote: Fri 30 Nov, 2018 06:44 замена идет поиском первых слэшей в пути, а не из Panel0, ибо накиданные с разных ресурсов файлы так не копировались
Я, конечно, в курсе. Но тут тоже проблема возникает: если поиск привёл к тому, что все найденные файлы расположены в одном подкаталоге (и его вложенных), то в качестве "корня" будет именно этот общий каталог. Меня это не устраивало. Поэтому я сделал макрос, "заточенный" под поиск по AltF7: при закрытии диалога поиска я запоминаю текущий каталог в локальную переменную, а при копировании использую это значение. Плюс - ясно. Минус - именно "заточенность" на поиск файла. Т.е. при занесении на временную панель файла, не находящегося в каталоге, бывшем текущим при начале поиска этот файл не будет найден. В связи с этим добавил следующее: если после копирования остались не скопированные файлы, то инициируется обычный поиск (F5).
Пример переделанного макроса будет помещён в первый пост темы чуть позже.
Shtirla
Posts: 117
Joined: Wed 04 Mar, 2009 20:09
Has thanked: 10 times
Been thanked: 2 times

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

Post by Shtirla »

Ну как вариант, перед копированием можно проходить все файлы с путями, и искать общий знаменатель в начале строки
buniak_a_h
Posts: 2031
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

Shtirla wrote: Fri 30 Nov, 2018 11:00 Ну как вариант, перед копированием можно проходить все файлы с путями, и искать общий знаменатель в начале строки
Я писал, чем это меня не устраивает. Конкретно меня в конкретно моих задачах.
Shtirla
Posts: 117
Joined: Wed 04 Mar, 2009 20:09
Has thanked: 10 times
Been thanked: 2 times

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

Post by Shtirla »

ну тогда не пойму чем вариант с заменой по первому\ не устраивает, он как раз таки полную структуру сохраняет
buniak_a_h
Posts: 2031
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post 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#\) (не все - выборочно).
Я не критикую Ваш вариант: такой макрос у меня тоже есть (точнее, был). И именно убирал общее начало. Мне как раз удобнее стало копировать пути, начиная с папки, которая была текущей во время начала поиска. Да, узко специализированный получился скрипт. Но часто требуемый. В моих условиях, во всяком случае...
buniak_a_h
Posts: 2031
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

Опубликовал версию 1.5.2 . Связана с изменениями в модулях для совместимости с другими моими же скриптами. Если Вы их не используете, версию 1.5.2 можете не качать.
citRiks
Posts: 788
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 251 times
Been thanked: 46 times

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

Post 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 и переимевал файл. Тогда скрипт стал нормально работать в Фаре с русским языком.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2031
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

citRiks wrote: Sun 15 Dec, 2019 15:47 вместо файла CopyFiles.TempPanelRus.lng лежит файл CopyFiles.TempPanel.lng с англоязычным содержанием и в кодировке 1251.
На самом деле это был эксперимент. С тех пор функция GetMsg сильно расширилась … :-)
Насколько я понимаю, это ни на что не влияет. Ну, кроме описания макроса во всяких браузерах. Но всё равно спасибо.
citRiks
Posts: 788
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 251 times
Been thanked: 46 times

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

Post by citRiks »

buniak_a_h wrote: Sun 15 Dec, 2019 17:07 Насколько я понимаю, это ни на что не влияет
Кое на что, всё-таки, влияет. Например, в меню выбора макроса выводится описание макроса на английском. А если просто перевести текст на русский и сохранить его в 1251, то вывод будет и вовсе на тарабарском. Поэтому я и поправил файл как изложил выше.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 788
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 251 times
Been thanked: 46 times

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

Post by citRiks »

buniak_a_h,

В 5543 обеих разрядностей при нахождении в панелях после нажатия кнопки F5 на клавиатуре стало появляться красное .
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2031
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

Интересно… Видимо, когда-то изменился интерфейс к этой функции. Во всяком случае я нашёл такие же ошибочные конструкции не только в моём скрипте, но и в давным-давно скачанных (авторства таких гуру, как Smuel!) Если интересно, то может посыпаться MultiPanel, PanelFilter (там panel.GetPanelInfo(-1, 1)), [Плагин] Macro Panel — макро-браузер в панели (правда, теперь ссылка в нём указывает "в космос". Но скачать я успел)
Та же беда будет и в Gind_n_Go (Вы, по-моему, его смотрели). Лечится заменой panel.GetPanelInfo(0) на panel.GetPanelInfo(nil, 1). У себя поправлю.
buniak_a_h
Posts: 2031
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post by buniak_a_h »

Стоп! Исправил, и работать перестало … Надо искать …
--
upd
Всё правильно. Не работало по какой-то другой причине.
Last edited by buniak_a_h on Tue 31 Dec, 2019 11:14, edited 2 times in total.
Shmuel
Posts: 6166
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 329 times

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

Post by Shmuel »

buniak_a_h wrote: Tue 31 Dec, 2019 10:33 Во всяком случае я нашёл такие же ошибочные конструкции не только в моём скрипте, но и в давным-давно скачанных (авторства таких гуру, как Smuel!)
Если не трудно, подскажите, в котором моём скрипте вы такое нашли. Сейчас сделал поиск по своим скриптам с регулярным выражением panel\.\w+\s*\(\s*\d, и ничего не нашлось.
Last edited by Shmuel on Tue 31 Dec, 2019 10:47, edited 1 time in total.
buniak_a_h
Posts: 2031
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 200 times
Contact:

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

Post 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)
Ну и Ваш панельный модуль, который мне посоветовали в качестве примера. Увы, теперь там "висячая ссылка", но был! А значит такой вариант вызова был узаконен
Shmuel
Posts: 6166
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 329 times

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

Post by Shmuel »

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

Насчёт панельного модуля - ошибку не нашёл - просьба дать ссылку или прикрепить вашу копию.
Last edited by Shmuel on Tue 31 Dec, 2019 11:19, edited 1 time in total.
Post Reply

Return to “Обсуждение макросов”