Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2012, 22:34   #1
AET
Пользователь
 
Регистрация: 29.02.2008
Сообщений: 60
По умолчанию сжать файл winrar

подскажите как лудче сжать файл используя
ShellExecute или WinExec

Код:
    UnCompressFile(sFilename,aFilename+'.txt',S);
    d:= aFilename+'.txt';
AET вне форума Ответить с цитированием
Старый 01.11.2012, 22:37   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

У winrar'a есть консоль и документация к ней!
Кольша вне форума Ответить с цитированием
Старый 01.11.2012, 22:39   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...использовать 7Z и ShellExecute, если не морочиться.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 01.11.2012, 22:43   #4
AET
Пользователь
 
Регистрация: 29.02.2008
Сообщений: 60
По умолчанию

как передать файл из функции UnCompressFile(sFilename,aFilename+ '.txt',S); в ShellExecute
AET вне форума Ответить с цитированием
Старый 01.11.2012, 22:45   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

рар должен кануть в лету.
eval вне форума Ответить с цитированием
Старый 01.11.2012, 22:46   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как передать файл из функции UnCompressFile(sFilename,aFilename+ '.txt',S); в ShellExecute
А почему ты решил что эти две функции связаны?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.11.2012, 22:54   #7
AET
Пользователь
 
Регистрация: 29.02.2008
Сообщений: 60
По умолчанию

файл сахраняю так inStream.SaveToFile(sFileOut); как этот файл сжать rar.exe
AET вне форума Ответить с цитированием
Старый 02.11.2012, 08:38   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

берете рар, запускаете его с ключом ? и готовите строку параметров
добавляете это все + имя файла в ShellExecute
p51x вне форума Ответить с цитированием
Старый 02.11.2012, 09:06   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

как вариант (для ShellExecute), можно воспользоваться консольной версией: RAR.exe

вот пример:
Код:
uses ....., Windows; 


procedure PackFile( sFName, sDestPath : string);
var si:TStartupInfo;
    pi:TProcessInformation;
    cmdline:string;

begin
    ZeroMemory(@si,sizeof(si));
    si.cb:=SizeOf(si);
    cmdline:='C:\UTIL\ARCS\Rar.exe a -m5 "C:\Test\masodovs.rar" c:\ForPack\*.*';
    if not CreateProcess( nil, // No module name (use command line).
        PChar(cmdline),  // Command line.
        nil,             // Process handle not inheritable.
        nil,             // Thread handle not inheritable.
        False,           // Set handle inheritance to FALSE.
        0,               // No creation flags.
        nil,             // Use parent's environment block.
        nil,             // Use parent's starting directory.
        si,              // Pointer to STARTUPINFO structure.
        pi )             // Pointer to PROCESS_INFORMATION structure.
       then
        begin
         WriteLn( 'CreateProcess failed. ('+cmdline+')' );
         Exit;
        end;
    WaitForSingleObject( pi.hProcess, INFINITE );
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );
    WriteLn('Done !');
end;

Обращаю Ваше внимание на то, что для запаковки в RAR нужно или таскать rar вместе со своей программой, либо он должен быть установлен на компьютере.
Кроме того, напоминаю, что RAR — это коммерческий продукт, использование его без лицензии (оплаты) для запаковки архивов - незаконно.
Чем не нравится/не устраивает 7Z (или даже старый добрый простой ZIP ) ?!

Последний раз редактировалось Serge_Bliznykov; 02.11.2012 в 09:18.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.11.2012, 10:50   #10
AET
Пользователь
 
Регистрация: 29.02.2008
Сообщений: 60
По умолчанию

Код:
ShellExecute(0,"open","WinRAR.exe",PChar("a ... ..."),nil,SW_SHOW);
у меня всегда имя файла бывают разные как его тут дописать
AET вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сжать массив Vladimir-888 Помощь студентам 16 28.06.2010 01:33
Как сжать и распаковать файл с помощью API? 3D Hunter Win Api 10 16.03.2010 03:05
программа 160 м.б весит ее нужно сжать до 50. WinRar так не сжимет Alex2009 Свободное общение 9 30.11.2009 15:46
Как Взломать WinRAR файл DeLKa Помощь студентам 11 25.06.2009 22:30
сжать файл andrey4623 Общие вопросы Delphi 14 13.01.2008 07:31