1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

xdelta3 (64-bit) 3.0.11

Программа для получения файлов разницы между парой файлов.

  1. Безумный Лорд Администратор

    Регистрация:
    15 июн 2011
    Сообщения:
    722
    Симпатии:
    1.050
    Пол:
    Мужской
    Пользователь Shegorat разместил новый ресурс:

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

    Узнать больше об этом ресурсе...
     
    ExPlayer, sergey3695 и vint56 нравится это.
  2. Безумный Лорд Администратор

    Регистрация:
    15 июн 2011
    Сообщения:
    722
    Симпатии:
    1.050
    Пол:
    Мужской
    Ramiro Cruzo, Adil и sergey3695 нравится это.
  3. Ветеран

    Регистрация:
    2 янв 2015
    Сообщения:
    40
    Симпатии:
    5
    Какую версию поддерживает последний 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;
     
  4. Безумный Лорд Администратор

    Регистрация:
    15 июн 2011
    Сообщения:
    722
    Симпатии:
    1.050
    Пол:
    Мужской
    Пользователь Shegorat обновил ресурс xdelta3 (64-bit) новой записью:

    xdelta 3.0.11 [08.01.2016]

    Узнать больше об этом обновлении...
     
    nik1967, Ramiro Cruzo и Adil нравится это.
  5. Ветеран

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

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

    Регистрация:
    10 мар 2017
    Сообщения:
    17
    Симпатии:
    0
    Пол:
    Мужской
    а как реализовать команду хдельты, чтобы не на каждый отдельный файл писать команду восстановления, а чтобы она автоматом находила исходные файлы по именам патчей и патчила их? тоесть патчи имеют такие же имена, как и файлы
     
  7. Ветеран Модератор

    Регистрация:
    15 июн 2011
    Сообщения:
    927
    Симпатии:
    531
    p1st0n, Писать цикл
     
  8. Новичок

    Регистрация:
    10 мар 2017
    Сообщения:
    17
    Симпатии:
    0
    Пол:
    Мужской
    а подробнее можно? что за цикл или это значит, что всё таки придётся вручную прописывать команду для каждого файла отдельно?
     
  9. Ветеран Проверенный

    Регистрация:
    18 июн 2011
    Сообщения:
    897
    Симпатии:
    657
    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;
     
  10. Новичок

    Регистрация:
    10 мар 2017
    Сообщения:
    17
    Симпатии:
    0
    Пол:
    Мужской
    у меня русик и в архиве нет никаких файлов кроме патчей - тогда получается мне надо вначале вручную запаковать en и ru в зип - потом снять патч
    потом в инсталле через if not ISPackZIP запаковать нужные в папке с игрой в en.zip
    потом на нём применить патч через if not ISExec ( 0, 0, 0, ExpandConstant('{app}\xdelta.exe'), '-d -s
    и в конце через if not IS7ZipExtract распаковать полученный после патча архив
    так?
     
  11. Ветеран Проверенный

    Регистрация:
    18 июн 2011
    Сообщения:
    897
    Симпатии:
    657
    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
     
    Последнее редактирование: 12 мар 2017
  12. Новичок

    Регистрация:
    10 мар 2017
    Сообщения:
    17
    Симпатии:
    0
    Пол:
    Мужской
    да я понял - так и делал - всё получается только на IS7ZipExtract ошибка выходит - ошибка открытия архива в модуле IS7ZipExtract - хотя созданный дельтой новый архив нормально вручную зипом распаковывается или там нужно обязательно 7z? - делал так
    Код (Text):
    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 пашет
     

    Вложения:

  13. Ветеран Проверенный

    Регистрация:
    18 июн 2011
    Сообщения:
    897
    Симпатии:
    657
    p1st0n, какая версия 7zip у тебя вроде isdone вроде 9.20
     
  14. Новичок

    Регистрация:
    10 мар 2017
    Сообщения:
    17
    Симпатии:
    0
    Пол:
    Мужской
    в папке include? packZIP.exe 9.20 и 7z.dll 9.22
    ещё забыл сказать - для снятия патча я отдельно прогонял через ISPackZIP, чтобы создать en.pak и rus.pak и затем снял патч - потом уже этот патч кинул в инсталл
     
    Последнее редактирование: 12 мар 2017
  15. Ветеран Проверенный

    Регистрация:
    18 июн 2011
    Сообщения:
    897
    Симпатии:
    657
    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'));
     
    Последнее редактирование: 12 мар 2017
    p1st0n нравится это.
  16. Новичок

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

    Регистрация:
    10 мар 2017
    Сообщения:
    17
    Симпатии:
    0
    Пол:
    Мужской
    vint56, вообщем спасибо за подсказки - сделал всё по твоим советам - всё норм пашет - прописал так
    Код (Text):

    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
     
  18. Новичок

    Регистрация:
    25 фев 2017
    Сообщения:
    7
    Симпатии:
    10
    Please give an Example of compression section of XDelta3 in comandline or attach some example of making the patch.
     
  19. Новичок

    Регистрация:
    25 фев 2017
    Сообщения:
    7
    Симпатии:
    10
    Пожалуйста, дайте пример раздела сжатия XDelta3 в comandline или приложите пример создания патча.
     
  20. Ветеран

    Регистрация:
    6 янв 2013
    Сообщения:
    70
    Симпатии:
    51
    Пол:
    Мужской
    Код (Text):
    создание патча
    xdelta3.exe -v2 -s старый.файл новый.файл разница.diff
    патч
    xdelta3.exe -v2 -d -s Оригинал.xxx Разница.diff Неоригинал.xxx
     
    Chayan Manna и Nemko нравится это.

Поделиться этой страницей