Программа для добавления общего оффсета ко всем адресам в па : Патчи : Форум


 gryja:
17.02.14, 21:34
 http://vk.com/doc172019725_270785235

Программа для добавления общего оффсета ко всем адресам в патче. Для работы переименовать нужный файл патча именем "INPUT.VKP", затем - запустить программу. Появится файл патча со смещёнными адресами - "OUTPUT.VKP". Если оффсет с минусом - то смещение в минусовую сторону, с плюсом - в плюсовую. Если проставлено несколько оффсетов подряд - общий оффсет будет последним. Также можно ставить новый оффсет через блок с кодом. Это позволяет совместить несколько патчей в один, пропустить через данную прогу, и на выходе получится нужное без ручного пересчёта адресов. Добавлена функция исправления ошибок при написании кириллическими символами или буквы "о" вместо нуля. Если найдёте баг в программе и опишите - исправлю. После скачивания переименуйте "OffSeter_13.02.2014.exe.txt" в "OffSeter_13.02.2014.exe".


http://vk.com/doc172019725_271368057
Добавил старые отступы перед комментариями.


http://vk.com/doc172019725_271587019
Забыл организовать подсчёт строк в патче для вывода ошибки.


http://vk.com/doc172019725_271851993
Добавлена реакция на другие синтаксические ошибки в записи адресов остановом проги и выводом строки ошибки патча.

 gryja:
26.07.15, 14:28
 Батник для удобства. Ложите его рядом с данной прогой в %ProgramFiles%, и ярлык - на рабочий стол. Можно перетаскивать VKP на ярлык, получится ноый VKP и Backup.

----------------------------------------------------------------------------------------------

@ECHO OFF
CLS
FOR %%I IN (%*) DO SET Z=%%~zI
FOR %%I IN (%*) DO SET X=%%~xI
:: =============================================================
IF %Z%==0 (
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO Размер исходного файла равен нулю.
PAUSE>NUL
EXIT
)
:: =============================================================
IF %Z% GTR 5242880 (
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO Размер исходного файла больше 5 МБ.
PAUSE>NUL
EXIT
)
:: =============================================================
IF /I NOT %X%==.VKP (
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO Расширение имени исходного файла не 'VKP'.
PAUSE>NUL
EXIT
)
:: =============================================================
IF EXIST INPUT.VKP DEL INPUT.VKP
IF EXIST OUTPUT.VKP DEL OUTPUT.VKP
COPY %* INPUT.VKP
CLS
OFFSETER.EXE
CLS
FOR %%I IN (OUTPUT.VKP) DO SET Z=%%~zI
:: =============================================================
IF %Z%==0 (
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO Синтаксис входного файла имеет необычный стандарт.
IF EXIST INPUT.VKP DEL INPUT.VKP
IF EXIST OUTPUT.VKP DEL OUTPUT.VKP
PAUSE>NUL
EXIT
)
:: =============================================================
REN %* "%~n1-BACKUP-%~x1"
IF EXIST OUTPUT.VKP COPY OUTPUT.VKP %*
IF EXIST INPUT.VKP DEL INPUT.VKP
IF EXIST OUTPUT.VKP DEL OUTPUT.VKP

----------------------------------------------------------------------------------------------

URL этой темы:
https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=5749

© 2005-2018 supertrubka.org