![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разбитые винраром архивы на part [D7, XP]
Rhammer © (2008-04-11 22:34:00)Вновь обращаюсь к вам за помощью.
У меня есть массив со списком путей до архивов..
После этого каждый элемент массива разархивируется путем запуска винрара через CreateProcess ..
Но если у меня архив разбит на куски то бишь asd.part1.rar, asd.part2.rar, asd.part3.rar, то прога моя сначала как положено запускает рар для разархивации 1 элемента массива (asd.part1.rar), винрар как положено разархивирует 1 часть потом вторую и третью, посылает код завершения в прогу, она проходит к следующему элементу массива part2.rar опять запускает рар... и естественно данные бьются.
Как мне добиться что-бы из массива удалялись лишние значения?
Я думал алгоритм на проверку в строке слова part, но могут быть косяки...
Заранее спасибо
procedure TForm1.Button3Click(Sender: TObject);
var
i : integer;
dirrar: string;
begin
DirRar := 'C:\Program Files\WinRAR\WinRar.exe';
Button3.Caption:='Дождитесь окончания операции';
Dir := Button2.Caption;
//Запуск винрара
for i := 1 to StrToInt(label2.Caption) do
begin
NameFile:=Button2.Caption+archives[i];
Label3.Caption := NameFile;
CrProcess(DirRar,'x -ad -y -ilog'+dir+ 'rar.log '+ '"'+ NameFile+'"' + ' ' + Dir, dir,'(Сеанс завершен) - Rar');
if CheckBox5.Checked=True then DeleteFile(NameFile);
end;
end;
Reindeer Moss Eater (2008-04-11 23:23:00) [1]ой мама дорогая......
rar x *.rar -y
и все!
и не надо никаких массивов
Johnmen (2008-04-11 22:57:00) [2]Посмотри, как сформированы имена в многотомном архиве.
Отсюда алгоритм формирования просто очевиден...
Rhammer (2008-04-11 22:46:00) [3]Это я и хочу сделать :) Вот проблема как раз в том чтобы определить ненужные значения. Только как не могу представить.
Johnmen (2008-04-11 22:45:00) [4]Надо добиться, чтобы в массив не добавлялись ненужные значения.