Имя пользователя:
Пароль:
 

Показать сообщение отдельно


Moderator


Сообщения: 53589
Благодарности: 15546

Профиль | Отправить PM | Цитировать


Vadikan, Blast
Видимо, свободного времени мало у всех :)
У меня тоже, тем не менее есть мысли и первый результат.

Задачка разделяется на две половины.
1. Некий скрипт, который предназназначен для вас (составителей CHM-справочников). То есть, запускать его будете вы. Он анализирует папки двух проектов (старого и нового) и создает файл (архив), содержащий изменения в новом проекте по сравнению со старым.

2. Скрипт-патчер для конечных пользователей. Декомпилирует старый chm, обновляет его содержимое из diff-файлов (их список может просто браться из текущей папки скрипта по маске "diff_*.7z" с сортировкой по имени) и создает новый chm.

Первую часть сделал, можете протестировать.
http://tools.oszone.net/V4sechkin/CHM/CHM_Env_Test.7z
(размер 4,8 метров).
Это тестовая среда.
Распакуйте содержимое архива в отдельную папку. Там будут подпапки 20060901 ("старый" проект), 20061007 ("новый" проект), непосредственно сам скрипт MakeDiffCHM.cmd (ну и 7za.exe до кучи).

Запускать так:
MakeDiffCHM.cmd 20060901 20061007
или наоборот:
MakeDiffCHM.cmd 20061007 20060901

Первый вариант более нормальный (проект 20061007 содержит несколько "новых" статей, которых нет в 20060901). Но второй тоже попробуйте, чтобы прочувствовать разницу (имитация удаления статей).

После выполнения создается файл типа Diff_20060901_20061007.7z (или Diff_20061007_20060901.7z).
В архиве в папке Files могут содержаться новые файлы и папки, обновленные файлы (не путайте новые с обновленными), а также списки удаленных папок (DelDirs.lst) и файлов (DelFiles.lst), если таковые имеются.

Осталось дело за малым, реализовать подзадачу номер два (патчер для пользователя). Это будет не сложнее, чем первая.
Жду вашей реакции, если вы еще не потеряли к этому интерес.

-------
«Компьютеру стало совсем худо, и он решил прекратить свои страдания».

Msgina.dll, диалог 2210

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:23, 07-10-2006 | #21