Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Разархивирование


Автор: DragonFire 27.6.2006, 16:01
Как разархивировать архив "D:\1.rar" в папку "C:\1\" с заменой одноименных файлов в папке?? 

Автор: _hunter 27.6.2006, 16:20
добавь ключ "o+" 

Автор: Poseidon 27.6.2006, 16:29
DragonFire, не понял в чем вопрос. Как разархивировать или как это сделать с заменой?

Добавлено @ 16:30 
В любом случае может поможет: http://vingrad.ru/DELPHI-DLP-001006
 

Автор: Yanis 27.6.2006, 16:31
DragonFire
Почитай файл Rar.txt в каталоге установленного WinRar'а. 

Автор: DragonFire 27.6.2006, 17:20
Спасибо всем, решил не морочится пока с распаковщиком прогрмамным, просто написал:
Код

start "" WinRar e -o+ "1.rar" "*.*" "c:\1\"
 

Автор: DragonFire 27.6.2006, 19:15
Написал простенькуп процедуру:
Код

procedure LoadRAR(RAR:String);
var f:textfile;
    s:string;
begin
  with FMenu do begin
  If InstD.Execute then begin
    s:='start "" WinRar e -o+ "'+AppFolder+'Patchs\'+RAR+'.rar" "*.*" "'+ExtractFilePath(InstD.FileName)+'"';
    assignfile(f,'C:\rar.bat');
    rewrite(f);
    writeln(f,s);
    closefile(f);
    winExec(PChar('C:\rar.bat'),SW_ShowNormal);
    DeleteFile('C:\rar.bat');
  end;
  end;
end;

В итоге в файл ничего не записывается и соответственно ничего не выполняется, почему? 

Автор: Yanis 27.6.2006, 20:36
А что это за программа такая WinRar? Надо просто rar.exe. 

Автор: DragonFire 27.6.2006, 21:10
Не winRAR лучше работает - к тому же так он у меня хоть что-то делает))
Вот так сам bat файл прекрасно все делает, только прога его почему-то не создает...  smile 
Код

start "" WinRar x -o+ "E:\installer\Patchs\Patch.rar" "*.*" "E:\1\"
 

Автор: DragonFire 27.6.2006, 21:43
Я понял - надо писать так:
Код

procedure LoadRAR(RAR:String);
var f:textfile;
    s:string;
begin
  with FMenu do begin
  If InstD.Execute then begin
    s:='start "" WinRar e -o+ "'+AppFolder+'Patchs\'+RAR+'.rar" "*.*" "'+ExtractFilePath(InstD.FileName)+'"';
    assignfile(f,'C:\rar.bat');
    rewrite(f);
    writeln(f,s);
    closefile(f);
    winExec(PChar('C:\rar.bat'),SW_ShowNormal);
  end;
  end;
end;

Только вот, как заставить файл удалится после распаковки? 

Автор: Yanis 27.6.2006, 21:46
Цитата(DragonFire @  27.6.2006,  22:43 Найти цитируемый пост)
Только вот, как заставить файл удалится после распаковки? 

Какой именно? Архив или пакетный файл?

Добавлено @ 21:52 
Хотя и тот и другой можно удалить прямо из командной строки. 

Автор: RA 28.6.2006, 01:06
А нах бат фаил? 
Просто кидай всё это в винЭкзэк 

Автор: DragonFire 28.6.2006, 14:41
Цитата(Yanis @  27.6.2006,  21:46 Найти цитируемый пост)
Хотя и тот и другой можно удалить прямо из командной строки.  

На самом деле bat файл - но это не важно, разобрался  smile , спс за помощь!!

Цитата(RAdmin @  28.6.2006,  01:06 Найти цитируемый пост)
Просто кидай всё это в винЭкзэк  

Не очень понял что кидать, архив? 

Автор: RA 28.6.2006, 14:49
Цитата(DragonFire @  28.6.2006,  14:41 Найти цитируемый пост)
Не очень понял что кидать, архив?  



команду твоей переменной "s".  Что-то типа winExec(PChar(s),SW_Hide);
и не надо создавать баты.  

Автор: DragonFire 29.6.2006, 07:36
АА, прикольно, попробую, СПС  smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)