Показать полную графическую версию : [техзадание] Распространение обновления для CHM файла
Petya V4sechkin
28-01-2007, 14:00
APOSTOL
Лучше схватить тот, который рядом с CHM-файлами в Проекте лежитВ каком проекте? Откуда MakeDiffCHM2.cmd будет знать о каких-то проектах, если ему в качестве параметров передаются имена chm-файлов? Или не имена? Кажется, мы говорим о разных вещах.
Имя Diff-файла - из старого принципа - Diff_<старый>_<новый>, которые указаны в MakeDiffCHM.bat (в смысле, с которыми параметрами запускается утилита).По-прежнему не понимаю, что за MakeDiffCHM.bat.
Что запускается? С какими конкретно параметрами?
Да, и ещё: а зачем там внутри листинги отличий ? Вроде при обратной сборке UpdateCHM.cmd они участия не принимают ?Какие листинги?
Так как у меня в наличии есть и "старый" CHM и "новый" CHM, в которых заведомо нет лишних файлов (а в Папках, из которых я их делаю, какой только лишней фигни не лежит)Я думаю, в папках проекта не стоит хранить лишнюю фигню.
Наверное, Вадикан был прав - тебе лучше самому поправить свой MakeDiffCHM.bat.
Декомпиляция делается так:
Start /Wait hh.exe -decompile <папка_назначения> <chm-файл>Что тут непонятного? Вроде все понятно.
Petya V4sechkin
28-01-2007, 15:43
APOSTOL
А! Кажется, я догадался!
Значит, в каждой папке проекта у тебя лежит скомпилированный chm-файл? И ты хочешь, чтобы MakeDiffCHM2.cmd сравнивал не сами папки, а содержимое chm-файлов?
Как работает MakeDiffCHM.cmd сейчас: (я возьму реальные названия, а то что-то <_> меня путает)
[Папка любого названия]
.. [club1.4]
.. [club1.5]
.. 7za.exe
.. MakeDiffCHM.cmd
.. MakeDiffCHM.bat
в файле MakeDiffCHM.bat (так как мне влом в Командной строке сразу столько вражеских букв набирать) написано:
MakeDiffCHM2.cmd club1.4 club1.5
Запускаем MakeDiffCHM.bat и получаем Diff_club1.4_club1.5.7z
В нём лежит
- папка [Files] - в которой набор новых (относительно папки [club1.4]) файлов
- два файла DelDirs и DelFiles - я только сейчас понял: они появляются только тогда, когда на самом деле требуется Delete. Если удалять не нужно - их нет.
А теперь - что я никак сам не могу сделать:
[Папка любого названия]
.. [Bin]
..... 7za.exe
..... hha.dll
..... hhc.exe
..... itcc.dll
.. club1.4.chm
.. club1.5.chm
.. club1.5.hhp
.. MakeDiffCHM.cmd - немножко переделанный
.. MakeDiffCHM.bat
в файле MakeDiffCHM.bat (в данном случае) будет написано:
MakeDiffCHM2.cmd club1.4.chm club1.5.chm
- Запускаем MakeDiffCHM.bat
- Оба CHM (их там может быть сколько угодно, но проверяем наличие ТОЛЬКО тех названий, которые указаны в параметрах запуска MakeDiffCHM.cmd - club1.4.chm и club1.5.chm, а порядок указывает на тот, который из них старше) развАливаются в папки с одноимёнными названиями. Для разборки используются программные файлы из папки . Получаем старую структуру.
- файл с расширением [b]*.hhp любого названия (он может быть НЕ БОЛЕЕ одной штуки, но вполне может его и не быть вовсе) копируется в папку с именем второго параметра - club1.5
- а теперь всё по-старому, сравниваем файлы из этих папок, формируем Diff_club1.4_club1.5.7z
- удаляем все папки, что процессе наформировали.
Наличие папки [Bin] позволяет НЕ надеяться на присутствие в Системе 7z-архиваторов и ВоркШопов.
в папках проекта не стоит хранить лишнюю фигню.
дык... :( там же у меня ВСЕ статьи в куче, там РЫБА валяется, там валяются ВСЕ *.hhp, Индексы и TOC от параллельных сборок, там ещё какой-то мусор... Когда запускаю в этой папке определённый файл *.hhp - он собирает только то, что в нём написано, вибирая из этого свинарника... Сейчас "Клуб переводчиков" имеет вид четырёх CHM разных сборок :(
HTML Help Workshop (в отличие от htm2chm, который спрессует указанную папку оптом, хоть туда своп положи) собирает только те файлы, которые явно указаны на собираемых страницах, причём теряет те рисунки, линки на которые имелись в CSS или в Ява-скриптах, но не имелись в других местах на страницах.
тебе лучше самому поправить свой MakeDiffCHM.bat. Что тут непонятного? Вроде все понятно.
"Нет хуже, когда не знаешь, да ещё и забудешь..."
Petya V4sechkin
28-01-2007, 20:00
APOSTOL
На конкретном примере стало более понятно.
Вот, по твоему спецзаказу: MakeDiffCHM2.cmd (http://tools.oszone.net/V4sechkin/CHM/MakeDiffCHM2.cmd) (вроде ничего не забыл).
файл с расширением *.hhp любого названия (он может быть НЕ БОЛЕЕ одной штуки, но вполне может его и не быть вовсе)Должен быть обязательно (иначе перекомпилироваться потом из обновления не сможет).
Если будут раздражать сообщения "Внимание: папка или файл ... уже существует", поменяй строки:
Set P1=%~n1
If Exist "!P1!" Call :Halt "Внимание: папка или файл !P1! уже существует, переименуйте или удалите ее."
Set P2=%~n2
If Exist "!P2!" Call :Halt "Внимание: папка или файл !P2! уже существует, переименуйте или удалите ее."
наSet P1=%~n1
If Exist "!P1!" RD /S /Q "!P1!"
Set P2=%~n2
If Exist "!P2!" RD /S /Q "!P2!"
Аха. Спасибо. Щас я его...
Да, всё работает. Веники !!!
Только не удалил за собой папки, в которые разобрал CHM, и мне так сильно кажется что эти файлы DelDirs и DelFiles нафиг не нужны в Diff, но это я уже так, выпендриваюсь.
Спасибо большое.
файл с расширением *.hhp должен быть обязательно
Вроде необязательно. Если это простые CHM, без всяких там Индексов-Поисков - по дефолту собираются. Надо попробовать будет. Пока - влом.
Petya V4sechkin
28-01-2007, 20:26
APOSTOL
Перезалил (http://tools.oszone.net/V4sechkin/CHM/MakeDiffCHM2.cmd) (размер 2915 байт), теперь все за собой удаляет.
и мне так сильно кажется что эти файлы DelDirs и DelFiles нафиг не нужны в DiffЕсли создаются, значит, нужны.
Вроде необязательно. Если это простые CHM, без всяких там Индексов-Поисков - по дефолту собираются.Дело в том, что hhp-файлы не создаются при декомпиляции (пересобрать заново не получится). Поэтому в любом обновлении должен быть hhp-файл.
Гы-гы... Сделал из club1.4_Office.chm -> club1.5_Vista.chm :haha: Спасибо естчё раз. :beer:
Если создаются, значит, нужны.Ну, положим я их удалял из Diff_. И так работает. Не нужны.
Сам попробуй - я к тебе на ФТП в CHM засунул Diff_any_club1.5_Vista.7z - 360 Кб (из любого СHM сделает Висту)... :beee:
Vadikan
посмотри на статью "Объединение CHM-файлов"
http://www.rsdn.ru/article/helpsystems/mergechm.xml?print
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC