ISDone

DLL ISDone 0.6 final

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

deus_ex

Новичок
Проверенный
а распаковка отдельной папки из arc-архива до сих пор не реализована?
 

alexa1995

Участник
deus_ex, реализована.

Добавлено через 1 минуту
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data.arc'), ExpandConstant('{app}'), 'Папка', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
 

deus_ex

Новичок
Проверенный
так там где то выше в ветке писали что пб тогда обрабатывается некорректно..
 

ProFrager

Знаток
Проверенный
deus_ex, попробуй распаковать через arc.exe, допустим, с теми же параметрами и последи за прогрессом в консоли. Они будут равномерно идти до 100?
 

deus_ex

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

dvd4el

Гость
Булат Зиганшин, с этой dll запароленные арк-архивы в ISDone все равно не распаковываются.
 

deus_ex

Новичок
Проверенный
в справке есть пример создания функции extractogg. а можно пример аналогичной функции extractpcf?
 

Snoopak96

Старожил
deus_ex,
FindHandle1:=ISFindFiles(0,ExpandConstant('{app}\*.pcf'),ColFiles1);
ExecError:=false;
while not ExecError and ISPickFilename(FindHandle1,ExpandConstant('{app}\' ),CurIndex1,true) do begin
InFilePath:=ISGetName(0);
OutFileName:=ISGetName(1);
ExecError:=not ISExec(0, 0, 0, ExpandConstant('{tmp}\precomp038.exe'), ' -r '"'+InFilePath+'"',ExtractFilePath(OutFileName) ,'',false) ;
end;
ISFindFree(FindHandle1);
if ExecError then break;
только поиск в подкаталогах не забудь включить.
 
Последнее редактирование:

deus_ex

Новичок
Проверенный
мм.. спасибо
ну тогда вопрос как этот поиск по подкаталогам включить?)

Добавлено через 1 час 6 минут
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)+'.wav';
OutFileName:=ISGetName(2)+'.wav';
ExecError:=not ISExec(Component, 0, 0, ExpandConstant('{tmp}\oggdec.exe'), '"'+InFilePath+'" "'+OutFilePath+'"',ExpandConstant('{tmp}'),OutFileName);
end;
ISFindFree(FindHandle1);
result:=not ExecError;
end;

вот так написано в справке, как сделать функцию. собственно выдаёт ошибку при компиляции "Invalid number of parametrs" на символ после скобки после "OutFileName)".
 

Snoopak96

Старожил
ну тогда вопрос как этот поиск по подкаталогам включить?)
Кода уже будите справку читать:
if not FileSearchInit(true) then break;
вот так написано в справке, как сделать функцию. собственно выдаёт ошибку при компиляции "Invalid number of parametrs" на символ после скобки после "OutFileName)".
Ну так параметры функции заданы не верно, справка для 0.5 версии, в 0.6 появился ещё параметр:
ISExec(0, 0, 0, ExpandConstant('{tmp}\precomp038.exe'), ' -r '"'+InFilePath+'"',ExtractFilePath(OutFileName) ,'',false) ;
писали об этом уже здесь.
 

OneTwo

Новичок
Проверенный
***​
Булат Зиганшин, с этой dll запароленные арк-архивы в ISDone все равно не распаковываются.
Вообще-то распаковываются, но есть один нюанс. Архив не распаковывается, если при упаковке включить шифрование каталога архива http://imageshack.us/photo/my-images/193/111oqz.png/
Вообще было бы здорово, чтобы и с ним работало.
 

ProFrager

Знаток
Проверенный
Архив не распаковывается, если при упаковке включить шифрование каталога архива http://imageshack.us/photo/my-images/193/111oqz.png/
Вообще было бы здорово, чтобы и с ним работало.
будет распаковываться. В теме фриарка на руборде Булат подсказал другой способ задания пароля, с которым все нормально работает.
 

shidow

Новичок
Если распаковывать файлы вот так:
Код:
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data-1.bin'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISSRepExtract   ( 0, 0, ExpandConstant('{app}\data.bin.srep'),ExpandConstant('{app}\data.bin'), true) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{app}\data.bin'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data-2.bin'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISSRepExtract   ( 0, 0, ExpandConstant('{app}\data.bin.srep'),ExpandConstant('{app}\data.bin'), true) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{app}\data.bin'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
То файл data.bin не удаляется. Это только у меня так?
 

Edison007

Ветеран
Модератор
Ne0N, как сделать что бы при использовании функции ISPackZIP писалось Запаковывается файл:... а не Извлекается файл:...?
 

ProFrager

Знаток
Проверенный
Edison007, эта надпись пишется из скрипта, так что во время выполнения нужной тебе функции измени вывод на нужную тебе строку. Расписывать уж подробно не буду.
 

Edison007

Ветеран
Модератор
Ne0N, не дело в том, что это надпись задаётся в ProgressCallback, [ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, {#NeedMem}, @ProgressCallback)], и если менять надпись в procedure CurStepChanged, то надпись не меняется...
 
Сверху