xdelta3 (64-bit)

xdelta3 (64-bit) 3.0.11

Нет прав для скачивания

Shegorat

Безумный Лорд
Администратор
Пользователь Shegorat разместил новый ресурс:

xdelta3 (64-bit) - Программа для получения файлов разницы между парой файлов.

xdelta3 — это свободная программа, работающая из командной строки, которая позволяет построить разницу между двумя файлами. Результат сравнения представляется в виде стандартного формата VCDIFF.

Compress examples:
Код:
xdelta3 -s SOURCE TARGET > OUT
xdelta3 -s SOURCE TARGET OUT
xdelta3 -s SOURCE < TARGET > OUT
Decompress examples:
Код:
xdelta3 -d -s SOURCE OUT > TARGET
xdelta3 -d -s SOURCE OUT TARGET
xdelta3 -d -s SOURCE < OUT > TARGET
usage: xdelta3...
Узнать больше об этом ресурсе...
 

Mrman

Пользователь
Какую версию поддерживает последний isdone? пробывал распаковать файлы через isdone вроде указал все верно но все врем выдает ошибку
if not ISxDeltaExtract ( 0, 0, 0, 640, ExpandConstant('{app}\e2f8e499bc8f3606.dat'), ExpandConstant('{app}\out.diff'), ExpandConstant('{app}\out.dat'), false, false) then break;
 

Shegorat

Безумный Лорд
Администратор
Пользователь Shegorat обновил ресурс xdelta3 (64-bit) новой записью:

xdelta 3.0.11 [08.01.2016]

Изменения:
Fixes and one major bug:
  • Decoder block cache poor cache performance (source buffer was effectively half-sized)
and a number of minor and non-critical bugs:
  • Number of decoder crashes discovered by American Fuzzy Lop
  • Lingering XD3_TOOFARBACK issues
  • Improved testing & portability
Узнать больше об этом обновлении...
 

dixen18

Пользователь
Народ, очень прошу, объясните мне в отношении этой проги тупому - как ее использовать в:
1. сжатии озвучек игры (русской и английской например) и как юзать ее в ISDone.dll
2. восстановлении оригинальных хеш-сумм игровых архивов..

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

p1st0n

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

vint56

Ветеран
Проверенный
p1st0n, и будет одно действие
1 Подготовь файлы от английской версий создай папку назови En и положи файлы туда и сожми файлы без сжатия архив назови DataEn.7z
2 Подготовь файлы от русской версий создай папку назови Ru и положи файлы туда и сожми файлы без сжатия архив назови DataRu.7z
if not ISxDeltaExtract ( 0, 0, 0, 640, ExpandConstant('{src}\DataEn.7z'), ExpandConstant('{src}\DataEn Patch file.vcdiff'), ExpandConstant('{app}\Data.7z'), false, false) then break;
if not IS7ZipExtract ( 0, 0, ExpandConstant('{app}\Data.7z'), ExpandConstant('{app}'), false, '') then break;
 

p1st0n

Пользователь
Подготовь файлы от английской версий создай папку назови En и положи файлы туда и сожми файлы без сжатия архив назови DataEn.7z
у меня русик и в архиве нет никаких файлов кроме патчей - тогда получается мне надо вначале вручную запаковать en и ru в зип - потом снять патч
потом в инсталле через if not ISPackZIP запаковать нужные в папке с игрой в en.zip
потом на нём применить патч через if not ISExec ( 0, 0, 0, ExpandConstant('{app}\xdelta.exe'), '-d -s
и в конце через if not IS7ZipExtract распаковать полученный после патча архив
так?
 

vint56

Ветеран
Проверенный
p1st0n, ты определи файлы русской версий и английской вот их и надо сжать без сжатия
http://sendfile.su/1316890
http://rgho.st/private/6mMbYVDfS/5122b012e45d458ffd04d8432678466f
+++++++++++++++++++++++++++++++++++++++++++++++
http://sendfile.su/1316892
http://rgho.st/private/74PZTMDd4/e2f45a27eace14b3ca89574a5e994a9b
+++++++++++++++++++++++++++++++++++++++++++++++++
if not ISxDeltaExtract ( 0, 0, 0, 640, ExpandConstant('{src}\DataEn.7z'), ExpandConstant('{src}\DataEn Patch file.vcdiff'), ExpandConstant('{app}\Data.7z'), false, false) then break;
if not IS7ZipExtract ( 0, 0, ExpandConstant('{app}\Data.7z'), ExpandConstant('{app}'), True, '') then break;
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
http://sendfile.su/1316898
http://rgho.st/private/6P889Wnzm/d9f61c99b2fa7b7f99444c5acaeb8f0b
 
Последнее редактирование:

p1st0n

Пользователь
ты определи файлы русской версий и английской вот их и надо сжать без сжатия
да я понял - так и делал - всё получается только на IS7ZipExtract ошибка выходит - ошибка открытия архива в модуле IS7ZipExtract - хотя созданный дельтой новый архив нормально вручную зипом распаковывается или там нужно обязательно 7z? - делал так
Код:
if not ISPackZIP       ( 0, 0, ExpandConstant('{app}\movies\en\*'), ExpandConstant('{app}\movies\en.pak'), 0, false ) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{app}\movies\xdelta.exe'), '-d -s movies\en.pak movies\ru.diff movies\ru.pak', ExpandConstant('{app}'), '...',false) then break;
if not IS7ZipExtract   ( 0, 0, ExpandConstant('{app}\movies\ru.pak'), ExpandConstant('{app}\movies\ru\'), false, '') then break;
дельта через ISxDeltaExtract что-то не пашет - делал через ISExec пашет
 

Вложения

vint56

Ветеран
Проверенный
p1st0n, какая версия 7zip у тебя вроде isdone вроде 9.20
 

p1st0n

Пользователь
p1st0n, какая версия 7zip у тебя вроде isdone вроде 9.20
в папке include? packZIP.exe 9.20 и 7z.dll 9.22
ещё забыл сказать - для снятия патча я отдельно прогонял через ISPackZIP, чтобы создать en.pak и rus.pak и затем снял патч - потом уже этот патч кинул в инсталл
 
Последнее редактирование:

vint56

Ветеран
Проверенный
p1st0n, если использовать if not ISPackZIP то выходит ошибка я сделал так
#define SevenZip
[Setup]

[Files]
#ifdef SevenZip
Source: Include\7z.exe; DestDir: {tmp}; Flags: dontcopy
#endif

procedure CurStepChanged(CurStep: TSetupStep);
#ifdef SevenZip
ExtractTemporaryFile('7z.exe');
#endif

Процесс создания архивов через Isdone
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), ExpandConstant('a -t7z -m0=Copy -mx0 -ms=off -sccUTF-8 -bb0 "{src}\movies\en.pak" "{src}\DataEn\*.*"'), ExpandConstant('{src}\'), 'Создания архива en.pak',false) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), ExpandConstant('a -t7z -m0=Copy -mx0 -ms=off -sccUTF-8 -bb0 "{src}\movies\ru.pak" "{src}\DataRu\*.*"'), ExpandConstant('{src}\'), 'Создания архива ru.pak',false) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\xdelta3.exe'), ExpandConstant('-e -0 -S djw -vfs "{src}\movies\en.pak" "{src}\movies\ru.pak" "{src}\movies\ru.diff"'), ExpandConstant('{tmp}'), 'Создания патча...',false) then break;
Процесс восстановления через Isdone
if not ISxDeltaExtract ( 0, 0, 0, 640, ExpandConstant('{src}\movies\en.pak'), ExpandConstant('{src}\movies\ru.diff'), ExpandConstant('{app}\ru.pak'), false, false) then break;
if not IS7ZipExtract ( 0, 0, ExpandConstant('{app}\ru.pak'), ExpandConstant('{app}'), True, '') then break;

++++++++++++++++++++++++++++++++++++++++++++++++++++++
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), ExpandConstant('a -t7z -m0=Copy -mx0 -ms=off -sccUTF-8 -bb0 "{src}\movies\en.pak" "{src}\DataEn\*.*"'), ExpandConstant('{src}\'), 'Обновление архива',false) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), ExpandConstant('a -t7z -m0=Copy -mx0 -ms=off -sccUTF-8 -bb0 "{src}\movies\ru.pak" "{src}\DataRu\*.*"'), ExpandConstant('{src}\'), 'Обновление архива',false) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\xdelta3.exe'), ExpandConstant('-e -0 -S djw -vfs "{src}\movies\en.pak" "{src}\movies\ru.pak" "{src}\movies\ru.diff"'), ExpandConstant('{tmp}'), '...',false) then break;

if not ISxDeltaExtract ( 0, 0, 0, 640, ExpandConstant('{src}\movies\en.pak'), ExpandConstant('{src}\movies\ru.diff'), ExpandConstant('{app}\ru.pak'), false, false) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), '-o"' + ExpandConstant('{app}') + '" x -y -pPASSWORD "' + ExpandConstant('{app}\ru.pak') + '" ', ExpandConstant('{tmp}'), '...',false) then break;
DeleteFile(ExpandConstant('{app}\ru.pak'));
 
Последнее редактирование:

p1st0n

Пользователь
vint56, ок спасибо попробую
а мб тогда проще распаковку сразу тоже через ISExec? типа этого
Код:
if not ISExec ( 0, 0, 0, ExpandConstant('{app}\movies\7z.exe'), 'x ru.pak -o"ru\"', ExpandConstant('{app}'), '...',false) then break;
но что-то не пашет так - через батник с такими же параметрами норм распаковывает
 
Последнее редактирование:

p1st0n

Пользователь
vint56, вообщем спасибо за подсказки - сделал всё по твоим советам - всё норм пашет - прописал так
Код:
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), ExpandConstant ('a -t7z -m0=Copy -mx0 -ms=off -sccUTF-8 -bb0 "{app}\movies\en.pak" "{app}\movies\en\*.*"'), ExpandConstant('{app}\'), '...',false) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\xdelta3.dll'), ExpandConstant ('-d -s "{app}\movies\en.pak" "{app}\movies\ru.diff" "{app}\movies\ru.pak"'), ExpandConstant('{tmp}'), '...',false) then break;
if not IS7ZipExtract   ( 0, 0, ExpandConstant('{app}\movies\ru.pak'), ExpandConstant('{app}\movies\ru'), false, '') then break;
но чёт подумал - наверное я всё-таки пропатчу каждый файл без создания паков) - тк с ними установка занимает 1 гб при установщике в 100 мб
и ещё хотелось бы всё-таки выяснить - почему у меня хдельта не пахала через ISxDeltaExtract, а пашет только через ISExec
 

Chayan Manna

Пользователь
Пожалуйста, дайте пример раздела сжатия XDelta3 в comandline или приложите пример создания патча.
 

ShuLLeR

Пользователь
Пожалуйста, дайте пример раздела сжатия XDelta3 в comandline или приложите пример создания патча.
Код:
создание патча
xdelta3.exe -v2 -s старый.файл новый.файл разница.diff
патч
xdelta3.exe -v2 -d -s Оригинал.xxx Разница.diff Неоригинал.xxx
 
Сверху