Страница 1 из 2

Как вызвать диалог сравнения для нужных файлов?

Добавлено: Ср июн 13, 2007 13:43
Моторокер
Как программно вызвать диалог сравнения для нужных файлов?

Команда cm_CompareFilesByContent поддерживает параметры?

Добавлено: Ср июн 13, 2007 17:20
VadiMGP
Нет, команда не имеет параметров. Чтобы использовать программно нужно сначала выделить файлы для сранения.

Добавлено: Ср июн 13, 2007 20:59
Вахмурка
Если ничего не выделено, то сравнивается текущий файл в панели-источнике с ОДНОИМЕННЫМ файлом в приемнике.

Добавлено: Чт июн 14, 2007 05:57
aLexx
2 Скрипто-гуру :)

А может, сделать скриптик по алгоритму: (самому тоже часто приходится сравнивать разноимённые файлы)
1. Переход на другую панель.
2. Пометить там нужный файлик. Предпологается, что курсор ранее стоял на нужном файле.
3. Вернутся на исходную панель. Предпологается, что курсор тоже ранее стоял на нужном файле.
4. Включить "Сравнение по содержимому".
5. Переход на другую панель.
6. Снять всё выделение.
7. Вернутся на исходную панель.

Имхо, слепить проще простого.

Добавлено: Чт июн 14, 2007 07:58
Моторокер
aLexx
не то
Пишу аналог диалога замены. Типа полный. Придётся ещё и нужные папки открывать.

Нужны либо параметры, либо мне фигнёй не заниматься :)

Добавлено: Пт июн 15, 2007 01:07
aLexx
А вот вопрос в тему:
Можно ли получить имя (и путь) файла (файлов) на неактивной панели?
Т.е., имя файла (каталога), где будет стоят курсор после нaжaтия "TAB".

Добавлено: Пт июн 15, 2007 04:14
VadiMGP
Скриптом можно. Скакнуть на другую панель, взять имя файла под курсором и обратно. :) Кроме того, если панель не в режиме миниатюр, то я думаю, что можно и через LB_GETTEXT. Только потом парсировать надо будет.

Добавлено: Пт июн 15, 2007 09:00
Моторокер
[REQ] Cause Compare Tool for necessary files
Параметры явно напрашиваются.

Добавлено: Пт июн 15, 2007 11:28
VadiMGP
2Моторокер
Мысль, безусловно, хорошая. Я уже просил похожую вещь для cm_Copy, но, увы, безрезультатно.

Я пробовал выделить файлы программно через LB_SETSEL. Но наткнулся на две проблемы. Во-первых, это не работало в режиме миниатюр. Во-вторых, возможно какие-то файлы уже выделены. Тогда надо бы чеерз LB_GETSELITEMS взять ткущее выделение и сохранить в сторонке а потом восстановить. Но вдруг за время между сохранением и восстановлением что-то в директории изменится и индексы файлов будут уже другие?

Добавлено: Пт июн 15, 2007 13:36
Моторокер
Раньше не замечал. Оказывается со всеми параметрами такие проблемы?

Добавлено: Пт июн 15, 2007 22:45
Вахмурка
Можно ли получить имя (и путь) файла (файлов) на неактивной панели?
Т.е., имя файла (каталога), где будет стоят курсор после нaжaтия "TAB".
Э-э, простите, а %М и %Т - это разве не оно?!

Добавлено: Пт июн 15, 2007 22:55
VadiMGP
Да, это оно. Я так понял вопрос - как получить это в программе?

Добавлено: Пт июн 15, 2007 23:03
Вахмурка
Как в программе не знаю, как в скрипте - знаю. Передаем скобку ("%М", "%Т") скрипту PowerPro, первая строка в коем

Код: Выделить всё

args TargetPath, TargetName
В С++, Паскале и пр. - обработка параметров командной строки стандартными средствами.
Могут возникнуть проблемы для путей с пробелами. Однако и эти проблемы можно решить.

Добавлено: Пт июн 15, 2007 23:42
VadiMGP
Ты говоришь о передаче параметров при старте? Тогда верно. %Т%М и вперед, с песней. А вот если во время работы программы ей понадобились эти имена...

Добавлено: Сб июн 16, 2007 00:00
Вахмурка
Ну, если во время работы программы курсор может гулять по панелям, тогда не знаю. Индекс файла на панели получить можно, но установить связь индекса с полным именем - задача зело трудоемкая и, возможно, в общем случае просто не решаемая.