Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[WFX] VirtualPanel - временная панель для ТК (Unicode)
Goto page Previous  1, 2, 3 ... 13, 14, 15 ... 39, 40, 41  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Вахмурка



Joined: 27 Dec 2004
Posts: 2587
Location: Большая деревня Москва

Post (Separately) Posted: Mon Mar 08, 2010 16:49    Post subject: Reply with quote

А в скриптах, как я понял, эту команду использовать нельзя, именно в силу
Quote:
Без символа '<' перед командой!
Пробовал так:
Code:
<add >2Mat { cd \ }
Получается иконка, перечеркнутая красным, и ругань при запуске: "Скрипт должен начинаться с символа <". Хотелось бы...
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Mar 08, 2010 17:31    Post subject: Reply with quote

А религия запрещает делать так?
Code:
<add >2Mat {<exec cd \}

Cool

(<exec обрабатывает команды абсолютно так же, как и командная строка ТК - вызывает функцию FsExecuteFileW)
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2587
Location: Большая деревня Москва

Post (Separately) Posted: Mon Mar 08, 2010 17:37    Post subject: Reply with quote

Я тупо забыл про команду exec - никогда ей не пользовался. Четвертый раз спасибо.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Tue Mar 09, 2010 22:13    Post subject: Reply with quote

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


VirtualPanel 1.0.0.505:
+ функция автосохранения состояния с заданным интервалом времени
* корректная обработка переменных окружения в команде cd
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
GGS



Joined: 02 May 2009
Posts: 322

Post (Separately) Posted: Wed Mar 10, 2010 09:32    Post subject: Reply with quote

MVV
Ситуация:
1. Левая панель: активная, курсор на файле в архиве
2. Правая панель: содержимое виртуальной папки созданной командой <add
3. Копирую файл слева направо <F5>
В результате файл направо в физическую папку скопировался, но слева меня "выкидывают" из архива Sad
Возможно ли слева остаться в архиве?
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Wed Mar 10, 2010 12:42    Post subject: Reply with quote

А-а, есть такое дело. Просто я вызываю обновление панелей ТК после операций с VP (ведь эти операции могут изменить содержимое панелей) - а ТК при обновлении панели выходит из архива.

Кстати, не забывай, что при извлечении файлов из архива в физическую папку, на которую ссылается VP, ТК вначале извлекает файлы во временную папку, а потом только VP копирует их в папку назначения (но к данной проблеме это не относится).


У кого 1.0.0.505, обновите до 1.0.0.506, там небольшой баг, из-за которого модуль может вылетать при открытии диалога конфигурации (обращение к неуказанному параметру). Exclamation
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
GGS



Joined: 02 May 2009
Posts: 322

Post (Separately) Posted: Wed Mar 10, 2010 16:45    Post subject: Reply with quote

MVV wrote:
при извлечении файлов из архива в физическую папку, на которую ссылается VP, ТК вначале извлекает файлы во временную папку, а потом только VP копирует их в папку назначения

Это я заметил по выставлению атрибута "A" на извлечённый файл, при подобной операции без VP значение остаётся как было в архиве.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2587
Location: Большая деревня Москва

Post (Separately) Posted: Sun Mar 14, 2010 11:12    Post subject: Reply with quote

2MVV
В-общем, мало-мальски сложные скрипты продолжают оставаться для меня китайской грамотой. При изучении справки и примеров возникли следующие вопросы:
1) Символ " . " часто употребляется, но его формат не описан (видимо, имеется в виду корень ВП);
2) После ifcond в справке идет фигурная скобка, а в примере - круглая, да еще в кавычках;
3) Что означает запись "@ %f" в примере? Ведь %f - это маска файла, а вовсе не виртуальный путь, как написано в справке.

Эти и другие вопросы встали передо мной при решении следующей задачи: удалить ссылки на все файлы, кроме index.*, от данной директории и ниже. Справиться с рекурсией я так и не смог и упростил задачу: только в текущей виртуальной папке. Пробовал по всякому, в том числе так:
Code:
<for %f . *.* { <ifcond { %f != index.* @ %f } { <del "%f" } }
Ответь, пожалуйста, на приведенные вопросы и подскажи, как решать задачу.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Sun Mar 14, 2010 14:57    Post subject: Reply with quote

Здрасьте, символ точка заменяет текущую папку, как принято в виндовсах испокон времен. Корень ВП обозначается одиночным обратным слэшем.

Про скобки написано выше в мануале, но поясню еще раз - если параметр содержит пробелы, его надо заключать в кавычки, но если он содержит знак меньше, то его необходимо заключать в фигурные скобки, чтобы парсер скриптов понимал, что этот знак меньше является частью параметра, а не началом новой внутренней команды в скрипте.

После собаки в команде ifcond указывается имя файла, для которого вычисляется выражение. А %f в примере - это подстановочный символ команды for, внутри блока которой выполняется команда ifcond (какой именно символ используется в конкретной команде for, указывается в самой команде, я обычно для файлов использую %f, а для папок - %d, но если нужно использовать вложенный вызов команды for, придется использовать и другие буквы).

Сравнивать имя файла со строкой низя. В описании команды ifcond указано, какие можно использовать псевдо-константы (типа атрибутов, даты, времени и размера).

Но задача отрицания маски хорошая. Пожалуй, я добавлю для команды for флаг отрицания маски, или же возможность сопоставления имени текущего файла маске в выражении команды ifcond (скорее всего, это будет оператор вида like "index.*") - этот вариант мне кажется более широким в функциональном плане.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2587
Location: Большая деревня Москва

Post (Separately) Posted: Sun Mar 14, 2010 16:46    Post subject: Reply with quote

Quote:
символ точка заменяет текущую папку
Слабо себе представляю, как это используется. В батниках все просто: если не указан путь, предполагается текущий, иначе играем двумя точками (материнская директория) или слешем (корень). Про точку слышу впервые. Ну что же, благодаря тебе расширил свой кругозор.
Quote:
Корень ВП обозначается одиночным обратным слэшем
...как и корень обычного диска.
Quote:
если он содержит знак меньше, то его необходимо заключать в фигурные скобки
Ты думаешь, я не читал справку? Нет там этого. До чего-то приходится допирать, набивая шишки, до чего-то не допирается Smile
Quote:
%f в примере - это подстановочный символ команды for, внутри блока которой выполняется команда ifcond (какой именно символ используется в конкретной команде for, указывается в самой команде
Это тоже аналогично батникам.
Quote:
В описании команды ifcond указано, какие можно использовать псевдо-константы (типа атрибутов, даты, времени и размера).
...но в явном виде запрета на имена файлов нет. Одна из проблем состоит в том, что отчасти твой язык напоминает батники, а в чем-то сильно отличен от него - ведь в батниках использовать условия типа
Code:
if -%1 == -index.* echo Хомяк
можно с огромным нашим удовольствием.
Quote:
Пожалуй, я добавлю для команды for флаг отрицания маски
Хорошо бы все-таки достичь функциональности батниковской команды if. Тем более, что за счет вложенных скриптов можно даже структурным программированием заняться...
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Sun Mar 14, 2010 17:00    Post subject: Reply with quote

Две точки - надпапка, точка - текущая папка, бэкслэш - корневая папка. В ТК, если в командной строке написать точку и нажать ентер, откроется текущая папка - самый быстрый способ открыть её. Smile

Quote:
Это тоже аналогично батникам.

Ну дык откуда драл=)

Батовая команда if куда ограниченнее, чем моя ifcond. Smile
Сделать сравнение строк будет непросто, т.к. вычислитель выражения оперирует с числами, а тут вдруг на те, строки. Так что будете довольствоваться функцией like "<маска>" для проверки имени, или его отрицанием, если таковое нужно.

На всяк случай поясняю, как работает вычислитель: строится массив-выражение, содержащий операторы и числа, при построении псевдо-константы расширяются до значений, а также вычисляются операторы (пока он один - like). Далее, вычисляется значение выражения. Так что, выражение !like "index.*" истинно только в том случае, когда имя файла (только имя, без пути) не соответствует маске.



VirtualPanel 1.0.0.510 (изменения после 1.0.0.505): Cool
+ оператор like для команды ifcond, позволяющий проверять, удовлетворяет ли имя файла маске
* обновление панели-источника после операций убрано
* не запоминался флаг удаления всех файлов только для чтения
* ошибка в параметрах функции форматирования информационного окна (в 1.0.0.505)

Также добавлен пример удаления из текущей папки всех файлов кроме скриптов, mp3 и m3u:
Code:
<for %f . * { <ifcond { !script && !like "*.mp3" && !like "*.m3u" @ %f } { <del "%f" } }

_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Mar 15, 2010 21:03    Post subject: Reply with quote

Исправляю кой-какие косяки, теперь скриптами с оператором like действительно можно пользоваться (нашел баг в обработке двойного символа % в файлах скриптов). Ну и по мелочи.


VirtualPanel 1.0.0.520 (изменения после 1.0.0.510):
+ команда <exec позволяет запрашивать параметр, если он начинается с символа '?'
+ раскрываются переменные окружения в параметрах запускаемых программ
+ команда "?" отображает справку
+ если параметр имеет вид ?:"<текст>", текст используется как подсказка в окне запроса параметра
* ошибка обработки "%%" в файлах скриптов
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Thu Mar 18, 2010 19:35    Post subject: Reply with quote

Ребята, у кого есть доступ к бетам 7.51, проверьте один баг при работе с файловыми системами. Он был указан здесь под индексом D.

Берем, например, папку Windows (чтоб побольше), кидаем в VP. ТК на некоторое время подвисает, определяя количество файлов в папке и всё такое, потом копирует. Здесь все логично. Но если при обычном копировании юзер может нажать Esc и начать копирование без подобных расчетов, то при копировании в файловую систему - казалось бы, нажатие Esc отменяет подсчет, но после нажатия Esc при каждом вызове функции установки прогресса ТК возвращает флаг отмены юзером копирования - даже после того, как пользователь изъявил желание продолжить копирование.

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

Подумываю запостить это в баги и уверен, что исправить это элементарно, но, возможно, это уже исправлено, а доступа к приватным бетам у меня нет.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10520
Location: Россия, Саратов

Post (Separately) Posted: Thu Mar 18, 2010 21:40    Post subject: Reply with quote

MVV
Это поведение не исправлено ни в 7.51, ни в 7.55. Так что можно репортить.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2077
Location: Russian Federation

Post (Separately) Posted: Sun Mar 21, 2010 12:08    Post subject: Reply with quote

MVV
Спасибо за плагин! Буду рекомендовать его друзьям и знакомым.
Жаль ничем пока не могу помочь в его развитии...
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 13, 14, 15 ... 39, 40, 41  Next
Page 14 of 41

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group