Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.19;
Скачать: CL | DM;

Вниз

Упаковка и распаковка данных в архив, с помощью двух кнопок   Найти похожие ветки 

 
Zloy ©   (2004-09-02 23:55) [0]

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


 
Cobalt ©   (2004-09-03 00:28) [1]

1) Описываешь полностью поведение, вплоть до случаев наличия файлов с подобным именем, и отсутствия места на жёстком диске или флешке.
2) Только после этого начинаешь писать


 
Zloy ©   (2004-09-03 13:39) [2]

спасибо, а не подскажите с помощью каких компонентов и функций это осуществить, просто я уже больше года не писал на Дельфи и все из головы вылетело


 
clickmaker ©   (2004-09-03 13:41) [3]


> [2] Zloy ©   (03.09.04 13:39)
> спасибо, а не подскажите с помощью каких компонентов и функций
> это осуществить

TForm, TButton
ShellExecute()


 
Zloy ©   (2004-09-03 13:57) [4]

ну это и так все понятно, я имею команды для пользования архиватором


 
clickmaker ©   (2004-09-03 13:59) [5]


>  [4] Zloy ©   (03.09.04 13:57)
> ну это и так все понятно, я имею команды для пользования
> архиватором

Обычно архиваторы сами выдают список своих команд, если их запускать без параметров


 
Digitman ©   (2004-09-03 14:04) [6]


> с помощью двух кнопок


ну уж без "помощи кнопок" тут никак не обойтись
без "кнопок" ни один алгоритм и ни один архиватор работать не будет ... т.е. есть кнопки - задача реализуема, нет кнопок - совсем кирдык


 
GuAV ©   (2004-09-03 14:05) [7]

У винрара список в хэлпе.


 
TUser ©   (2004-09-03 14:14) [8]

Я бы добавил еще кнопку Help. Или это выходит за пределы ТЗ?


 
Zloy ©   (2004-09-03 14:38) [9]

народ чего вы прикалываетесь то, есть вопрос - если есть что ответить по теме, буду признателен, если ничего, то чего блистать своим юмором, который в принципе совсем не к месту


 
Алхимик ©   (2004-09-03 14:42) [10]

В ShellExecute() пишешь команду "С:\...\winrar <параметры упаковки распаковки>"


 
Jeer ©   (2004-09-03 14:43) [11]

Zloy ©   (03.09.04 13:57) [4]
>ну это и так все понятно, я имею команды для пользования >архиватором

Так тебе же все ясно ?

Вот команды pkzip-a, например:

PKZIP (R)  FAST!  Create/Update Utility    Version 4.1v    2-04-94    
Copr. 1989-1994 PKWARE Inc.  All Rights Reserved.  PKZIP/h for help
PKZIP Reg. U.S. Pat. and Tm. Off.                      

Usage: PKZIP [-b[path]] [options] zipfile [@list] [files...]
Options summary - consult the PKWARE documentation for additional information
 -x<filespec|@list> = eXclude filespec(s)            -z = add zipfile comment
 -d = delete files            -f = freshen files     -i = add changed files
 -l = display license info    -u = update files      -m[u,f] = move files
 -a = add files               -b = create temp zipfile on alternate drive
 -c = add/edit file comments  -C = add comments to new files only
 -k = keep same ZIP date      -o = set ZIP date to latest file
 -q = enable ANSI comments    -s<pwd> = Scramble files with password
 -r = recurse subdirs         -$[drive] = save volume label
 -<T|t>[mmddyy] = Compress files before|after specified date (default=today)
 -e[x,n,s] = maXimal compression/Normal compression/Speed(fast) compression
 -<p|P> = store pathnames | p=recursed into | P=specified & recursed into
 -<w|W><H,S> = | w=include | W=don"t include | Hidden/System files
 -<j|J><H,S,R> = | j=mask | J=don"t mask | Hidden/System/Readonly attributes
 -v[b,c,d,e,n,p,s,r,t] = view ZIP [Brief listing/show Comments/sort by -
   Date/Ext/Name/Percentage/Size/sort Reverse/Technical (long) listing]
zipfile = ZIP file name.  Default extension is .ZIP
file    = Names of files to compress. Wildcards *,? ok. Default is ALL files.
@list   = listfile containing names of files to add or view etc.


 
Digitman ©   (2004-09-03 14:48) [12]


> Zloy ©   (03.09.04 14:38) [9]


по сути вопроса ответ ты уже получил - ShellExecute()

но в вопросе твоем упоминание каких-то там "кнопок" - как корове седло

использование того же ShellExecute() есть само по себе и не требут никаких кнопок - кнопки являют собой лишь некие элементы интерфейса пользователя, который c центральной логикой поставленной задачи (программный старт внешнего архиватора и программное же управление его работой) не имеет практически ничего общего


 
Zloy ©   (2004-09-03 15:48) [13]

слушайте, ну я конечно давно не прогал, но не настолько, просто я так выразился, есет-но я имел ввиду функции которые будут реализованы при нажатии этих кнопок, а что такое кнопки и вообще компоненты в дельфях я знаю достаточно, ПРОСТО ДАВНО НИЧЕГО НЕ ПИСАЛ НА ДЕЛЬФИ и все, так что заканчивайте придираться к этим кнопкам


 
Mim1 ©   (2004-09-03 19:20) [14]

Страшное дело, когда не знал да еще и забыл. :)
А вы до этого сами писали или выбивали из посетителей форума и копировали? :)


 
Zloy ©   (2004-09-03 23:26) [15]

Уважаемый Mim1 а не пойти бы вам на хутор бабочек ловить :)


 
Cobalt ©   (2004-09-04 02:17) [16]

2 Zloy ©   (03.09.04 15:48) [13]

Для восполнения пробелов в памяти рекомендую посмотреть проекты в папке
C:\Program Files\Borland\Delphi7\Demos

Синтаксис сразу вспомните. Остальное - алгоритм.
Кстати, ожидаем от тебя алгоритм - это предлог дальнейшей беседы. Без него конструктивных предложений не будет!


 
Mim1 ©   (2004-09-04 06:40) [17]


> [15] Zloy ©   (03.09.04 23:26)


Прям щас побежал. :)

Вот небольшой кодик. Мож пригодится.

procedure TForm1.Button1Click(Sender: TObject);
var si:STARTUPINFO;
   pi:PROCESS_INFORMATION;
   xc:cardinal;
begin
   ZeroMemory(@si,sizeof(si));
   si.cb:=SizeOf(si);
   si.wShowWindow := SW_HIDE;
   si.dwFlags := STARTF_USESHOWWINDOW;

   CreateProcess(nil,
{$ifdef home}
     PCHAR("rar32 a test.zip "+"C:\Video\nge\nge-01.viv")
{$else}
     PCHAR("rar32 a test.zip "+Application.EXENAME)
{$endif}
     ,nil,nil,false,NORMAL_PRIORITY_CLASS,nil,nil,si,pi);
   CloseHandle(Pi.hThread);
   with tanimate.Create(self) do
     begin
       Parent := self;
       Align := alClient;
       BringToFront;
       CommonAVI := aviCopyFiles;
       Active := True;
       StopFrame := 34;
       while WaitForSingleObject(Pi.hProcess, 10) = WAIT_TIMEOUT do
         Application.ProcessMessages;
       free;
     end;
   if GetExitCodeProcess(Pi.hProcess,xc) then
     showMessage(inttostr(xc));
   CloseHandle(Pi.hProcess);
end;



Страницы: 1 вся ветка

Текущий архив: 2004.09.19;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.05 c
14-1093695706
DeadMeat
2004-08-28 16:21
2004.09.19
Вот так вот...


14-1093940607
DSKalugin
2004-08-31 12:23
2004.09.19
Что за расширение "*.nco"?


14-1094046510
lipskiy
2004-09-01 17:48
2004.09.19
Анекдот прикольный вспомнил


3-1093005560
happyandry
2004-08-20 16:39
2004.09.19
Как изменить программно свойства dbgrid


1-1093955952
IXT
2004-08-31 16:39
2004.09.19
Dll