Копирование файлов с временной панели с сохранение структуры папок
- buniak_a_h
- Posts: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Предлагаю небольшой макрос, копирующий файлы с временной панели, открытой на активной панели (извините за тавтологию) в директорий, открытый на неактивной панели. Макрос "рассовывает" копируемые файлы по подкаталогам в соответствии с их расположением в исходной структуре (относительно "корневой" папки). Особенно полезна для копирования результатов поиска файлов, помещённых на временную панель.
Опубликовал версию 1.5.2 в связи с изменениями в модулях
Опубликовал версию 1.5.2 в связи с изменениями в модулях
Last edited by buniak_a_h on Tue 31 Dec, 2019 12:38, edited 3 times in total.
Копирование файлов с временной панели с сохранение структуры папок
Latest post of the previous page:
Во первых Спасибо автору ! помог решить задачку быстрее.во вторых выкладываю модификацию текущего макроса, замена идет поиском первых слэшей в пути, а не из Panel0, ибо накиданные с разных ресурсов файлы так не копировались
- buniak_a_h
- Posts: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Я, конечно, в курсе. Но тут тоже проблема возникает: если поиск привёл к тому, что все найденные файлы расположены в одном подкаталоге (и его вложенных), то в качестве "корня" будет именно этот общий каталог. Меня это не устраивало. Поэтому я сделал макрос, "заточенный" под поиск по AltF7: при закрытии диалога поиска я запоминаю текущий каталог в локальную переменную, а при копировании использую это значение. Плюс - ясно. Минус - именно "заточенность" на поиск файла. Т.е. при занесении на временную панель файла, не находящегося в каталоге, бывшем текущим при начале поиска этот файл не будет найден. В связи с этим добавил следующее: если после копирования остались не скопированные файлы, то инициируется обычный поиск (F5).
Пример переделанного макроса будет помещён в первый пост темы чуть позже.
- buniak_a_h
- Posts: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Я писал, чем это меня не устраивает. Конкретно меня в конкретно моих задачах.
- buniak_a_h
- Posts: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Извините, невнимателен.
По первому - другая крайность. Например, все проекты находятся в подпапках D:\SUBSTR\F\Projects\Projecn#. Это - у меня. У юзера нет D:\SUBSTR\F\Projects\, а вместо этого есть C:\Program Files\ Я передаю файлы, относящиеся к одному проекту (Project#\) (не все - выборочно).
Я не критикую Ваш вариант: такой макрос у меня тоже есть (точнее, был). И именно убирал общее начало. Мне как раз удобнее стало копировать пути, начиная с папки, которая была текущей во время начала поиска. Да, узко специализированный получился скрипт. Но часто требуемый. В моих условиях, во всяком случае...
- buniak_a_h
- Posts: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Опубликовал версию 1.5.2 . Связана с изменениями в модулях для совместимости с другими моими же скриптами. Если Вы их не используете, версию 1.5.2 можете не качать.
Копирование файлов с временной панели с сохранение структуры папок
Установил, работает, с другими макросами не конфликтует. Спасибо.
С учётом следующего. В архиве CopyFiles.TempPanel.1.5.2.7z вместо файла CopyFiles.TempPanelRus.lng лежит файл CopyFiles.TempPanel.lng с англоязычным содержанием и в кодировке 1251. Перевёл содержание на русский, сохранил в UTF-8 с BOM и переимевал файл. Тогда скрипт стал нормально работать в Фаре с русским языком.
- buniak_a_h
- Posts: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
На самом деле это был эксперимент. С тех пор функция GetMsg сильно расширилась …
Насколько я понимаю, это ни на что не влияет. Ну, кроме описания макроса во всяких браузерах. Но всё равно спасибо.
Копирование файлов с временной панели с сохранение структуры папок
Кое на что, всё-таки, влияет. Например, в меню выбора макроса выводится описание макроса на английском. А если просто перевести текст на русский и сохранить его в 1251, то вывод будет и вовсе на тарабарском. Поэтому я и поправил файл как изложил выше.
Копирование файлов с временной панели с сохранение структуры папок
buniak_a_h,
В 5543 обеих разрядностей при нахождении в панелях после нажатия кнопки F5 на клавиатуре стало появляться красное .
В 5543 обеих разрядностей при нахождении в панелях после нажатия кнопки F5 на клавиатуре стало появляться красное .
- buniak_a_h
- Posts: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Интересно… Видимо, когда-то изменился интерфейс к этой функции. Во всяком случае я нашёл такие же ошибочные конструкции не только в моём скрипте, но и в давным-давно скачанных (авторства таких гуру, как Smuel!) Если интересно, то может посыпаться MultiPanel, PanelFilter (там
Та же беда будет и в Gind_n_Go (Вы, по-моему, его смотрели). Лечится заменой
panel.GetPanelInfo(-1, 1)
), [Плагин] Macro Panel — макро-браузер в панели (правда, теперь ссылка в нём указывает "в космос". Но скачать я успел)Та же беда будет и в Gind_n_Go (Вы, по-моему, его смотрели). Лечится заменой
panel.GetPanelInfo(0)
на panel.GetPanelInfo(nil, 1)
. У себя поправлю.- buniak_a_h
- Posts: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Стоп! Исправил, и работать перестало … Надо искать …
--
upd
Всё правильно. Не работало по какой-то другой причине.
--
upd
Всё правильно. Не работало по какой-то другой причине.
Last edited by buniak_a_h on Tue 31 Dec, 2019 11:14, edited 2 times in total.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Копирование файлов с временной панели с сохранение структуры папок
Если не трудно, подскажите, в котором моём скрипте вы такое нашли. Сейчас сделал поиск по своим скриптам с регулярным выражением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: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов с временной панели с сохранение структуры папок
Там я привёл список.
PanelFilter (не знаю, какая версия - в самом скрипте не указано). Там написано:
Code: Select all
Author: Maxim Gonchar
Modifications: Shmuel Zeigerman
… … …
panel.GetPanelInfo(-1, 1) -- (Строка 103)
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Копирование файлов с временной панели с сохранение структуры папок
Спасибо, нашёл. (Регулярное выражение поиска не учитывало возможность минуса перед цифрой).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.