ISDone

DLL ISDone 0.6 final

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

SaintPaul

Участник
PUNISHER, а при распаковке пользуешь тот же экзешник, которым и паковал?
 

LexBell

Борода
Супер модератор
так и прописано
Когда ругается на неизвестный метот сжатия, то вариантов немного. первый - arc.ini использован не тот, который использован при упаковке. второй - один раз и совершенно случайно мне удалось получить подобную ошибку, когда не совпадали версии файлов при упаковке и распаковке. Как (эту ошибку, при правильном arc.ini получит ни разу больше не удалось) до сих пор удавляюсь сам, больше не удавалось ни разу.
 
Последнее редактирование:

PUNISHER

Участник
PUNISHER, а при распаковке пользуешь тот же экзешник, которым и паковал?
да

Добавлено через 2 минуты
проблема была в arc.ini

паковался с таким:
Код:
[Default options]

[Compression methods]

[External compressor:srep]
;options  = l%d (minimal match length, default=512)
header = 0
packcmd   = srep {options} -a1 -m3f $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = srep -d -s $$arcpackedfile$$.tmp $$arcdatafile$$.tmp


[External compressor:precomp]
header = 0
mem = 10
packcmd   = precomp -slow -t-j {options} -o$$arcpackedfile$$.tmp  $$arcdatafile$$.tmp
unpackcmd = precomp -o$$arcdatafile$$.tmp -r $$arcpackedfile$$.tmp

[External compressor:tak]
packcmd   = takc -e {options} $$arcdatafile$$.wav $$arcpackedfile$$.tak
unpackcmd = takc -d $$arcpackedfile$$.tak $$arcdatafile$$.wav
datafile   = $$arcdatafile$$.wav
packedfile = $$arcpackedfile$$.tak
solid = 0

[External compressor:msc]
header = 0
packcmd   = msc c -v {options} $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
а распаковывался с таким:
Код:
[Default options]

[Compression methods]

[External compressor:srep]
packcmd   = srep {options} $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = srep -d - -  <stdin> <stdout>


[External compressor:tak]
packcmd   = takc -e {options} $$arcdatafile$$.wav $$arcpackedfile$$.tak
unpackcmd = takc -d $$arcpackedfile$$.tak $$arcdatafile$$.wav

странно что arc.exe распаковывал, а isdone нет
 

SaintPaul

Участник
я если такое получается, обычно беру все файлы которые использовались при упаковке и копирую их в папку инклуда компилируемого скрипта и компилю уже с этими файлами, но почему-то я на 100 процентов уверен, что дело в ини файле. У меня было такое раз, и сейчас это покажется многим дуростью, но я сделал так

1. Переименовал экзешник (в моем примере precomp.exe ---> precomp042.exe)
2. Переименовал в арк.ини все что связано с методом упака/распака precomp в имя переименованого экзе.
незнаю с чем это было связно, но помогло
 

Aleks21

Новичок
Помогите разобраться выходит при распаковке
в ISDone так
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\game.bin'), ExpandConstant('{app}\'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISSRepExtract ( 0, 0, ExpandConstant('{app}\game.srep'),ExpandConstant('{app}\game.pcf'), true) then break;
if not ISPrecompExtract( 0, 0, ExpandConstant('{app}\game.pcf'), ExpandConstant('{app}\game.7z'), true) then break
if not IS7ZipExtract ( 0, 0, ExpandConstant('{app}\game.7z'), ExpandConstant('{app}\data1'), false, '') then break;
 

Вложения

LexBell

Борода
Супер модератор
Судя по скрину, ты забыл указать строчку, в которой совершил ошибку.
 

PUNISHER

Участник
теперь другая проблема, на 7 связка lzma+tak распаковывается нормально, на вылетает отчет об ошибке tack.exe, что такое может быть?
 

Snoopak96

Старожил
PUNISHER,
ошибка не в tack.exe, а в kernel32.dll
Wiki:
kernel32.dll — динамически подключаемая библиотека, присутствующая во всех 32- и 64-разрядных версиях Microsoft Windows. Она предоставляет приложениям многие базовые API Win32, такие как управление памятью, операции ввода/вывода, создание процессов и потоков и функции синхронизации...

Проскань лучше систему на вирусы, однозначно косяк в ней.

Тема по IsDone тут не причём к стати. ;)
 

Лёха

Участник
Такой вопрос:
В общем пользоваться компонентами умею, но хочу понять как сделать так в архиве 1 несколько папок(каждая со своим компонентом) где в IsDone и что надо указать чтобы распаковалось нужная папка.
Справку читал, ни чего не нашёл.
Сегодня увидел такое в репаке от Оригами, там 3 разные озвучки в 1 архиве и распаковывается именно та,которую выбрал.
 

Mailchik

Старожил
Проверенный
Лёха, if not ISArcExtract ( 1, 0, ExpandConstant('{src}\Data.bin'), ExpandConstant('{app}\'), 'RUS', false, '','', '', notPCFonFLY ) then break;
1 - номер компонента. RUS - папка в архиве при выбранном 1-м компоненте.
 

Pirate Martin

Мимокрокодил
хочу через IsDone (в функции ExtractOGG) такое сделать
oggdec sound.wav.ogg -o sound.wav.ckd
чтобы конечное разрешение было не .wav, а .ckd
где что нужно прописать?
function ExtractOGG(Component:Cardinal; InputFiles,OutputPath:string):boolean;
var
FindHandle1,ColFiles1,CurIndex1:integer;
ExecError:boolean;
InFilePath,OutFilePath,OutFileName:pAnsiChar;
begin
FindHandle1:=ISFindFiles(Component,InputFiles,ColFiles1);
ExecError:=false;
while not ExecError and ISPickFilename(FindHandle1,OutputPath,CurIndex1,true) do begin
InFilePath:=ISGetName(0);
OutFilePath:=ISGetName(1);
OutFileName:=ISGetName(2);
ExecError:=not ISExec(Component, 0, 0, ExpandConstant('{tmp}\oggdec.exe'), '"'+InFilePath+'" -w "'+OutFilePath+'"',ExpandConstant('{tmp}'),OutFileName, false);
end;
ISFindFree(FindHandle1);
result:=not ExecError;
end;
 
Последнее редактирование:

Mailchik

Старожил
Проверенный
Pirate Martin, rayman'а делаешь?
через функцию ISFindFiles.
FindHandle1:=ISFindFiles(0,ExpandConstant('{app}\GameData\itf_cooked\PC\sound\*.ogg'),ColFiles1);
ExecError:=false;
while not ExecError and ISPickFilename(FindHandle1,ExpandConstant('{app}\GameData\itf_cooked\PC\sound\'),CurIndex1,true) do begin
InFilePath:=ISGetName(0);
OutFilePath:=ISGetName(1)+'.ckd';
OutFileName:=ISGetName(2)+'.ckd';
ExecError:=not ISExec(0, 0, 0, ExpandConstant('{tmp}\oggdec.exe'), '"'+InFilePath+'" -w "'+OutFilePath+'"',ExpandConstant('{tmp}'),OutFileName,false);
end;
ISFindFree(FindHandle1);
if ExecError then break;
путь к ogg файлам я может быть не правильно написал, так как на память писал.
 
Последнее редактирование:

PUNISHER

Участник
Snoopak96, так это на нескольких компах с ХР, да и на виртуальной машине пробовал, а на 7 все замечательно как писал раннее.
 

Snoopak96

Старожил
PUNISHER,
Ну я заплаток для XP не выпускаю. А вообще сменил бы версию tack будь на твоём месте.
 

ProFrager

Знаток
Проверенный
PUNISHER, пиши автору TAK'а) Но я думаю, без удаленной отладки тут не исправить ошибку.
 

SaintPaul

Участник
PUNISHER возможно с правами доступа чего пошаманить на tack.exe? Попробуй режим совместимости смени на исполняемом tack.exe и поставь запускать от имени админа - это не выход может, но, так, вдруг поможет ) У меня на 8ке - прекомп при распаковке ошибку выдавал - я изменил права доступа и пошло, вдруг и тебе поможет )
 

Лёха

Участник
Лёха, if not ISArcExtract ( 1, 0, ExpandConstant('{src}\Data.bin'), ExpandConstant('{app}\'), 'RUS', false, '','', '', notPCFonFLY ) then break;
1 - номер компонента. RUS - папка в архиве при выбранном 1-м компоненте.
А где мне прописать чтобы был выбор 1 из 2х, если делать так:
if not ISArcExtract ( 1, 0, ExpandConstant('{src}\1.tgg'), ExpandConstant('{app}'), 'r', false, '', '', '', notPCFonFLY) then break;
if not ISArcExtract ( 2, 0, ExpandConstant('{src}\1.tgg'), ExpandConstant('{app}'), 't', false, '', '', '', notPCFonFLY) then break;
То инстал не может найти второй файл, хотя он всего 1.
 
Последнее редактирование:
Сверху