![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Упаковка и распаковка данных в архив, с помощью двух кнопок [D7, WinXP]
Zloy © (2004-09-02 23:55:00)Приветствую!!!
нужно написать прогу, которая по сути состоит из двух кнопок, сжать и разжать, при нажатии сжать, какой-нибудь архиватор сжимает определенный каталог и кидает его на флешку. При разжать, этот архив распаковывается обратно в каталог да винчестер.
Не подскажите как осуществить данную задачу???
Mim1 (2004-09-04 06:40:00) [1]
> [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;
Cobalt (2004-09-04 02:17:00) [2]2 Zloy © (03.09.04 15:48) [13]
Для восполнения пробелов в памяти рекомендую посмотреть проекты в папке
C:\Program Files\Borland\Delphi7\Demos
Синтаксис сразу вспомните. Остальное - алгоритм.
Кстати, ожидаем от тебя алгоритм - это предлог дальнейшей беседы. Без него конструктивных предложений не будет!
Zloy (2004-09-03 23:26:00) [3]Уважаемый Mim1 а не пойти бы вам на хутор бабочек ловить :)
Mim1 (2004-09-03 19:20:00) [4]Страшное дело, когда не знал да еще и забыл. :)
А вы до этого сами писали или выбивали из посетителей форума и копировали? :)
Zloy (2004-09-03 15:48:00) [5]слушайте, ну я конечно давно не прогал, но не настолько, просто я так выразился, есет-но я имел ввиду функции которые будут реализованы при нажатии этих кнопок, а что такое кнопки и вообще компоненты в дельфях я знаю достаточно, ПРОСТО ДАВНО НИЧЕГО НЕ ПИСАЛ НА ДЕЛЬФИ и все, так что заканчивайте придираться к этим кнопкам
Digitman (2004-09-03 14:48:00) [6]
> Zloy © (03.09.04 14:38) [9]
по сути вопроса ответ ты уже получил - ShellExecute()
но в вопросе твоем упоминание каких-то там "кнопок" - как корове седло
использование того же ShellExecute() есть само по себе и не требут никаких кнопок - кнопки являют собой лишь некие элементы интерфейса пользователя, который c центральной логикойпоставленной задачи (программный старт внешнего архиватора и программное же управление его работой) не имеет практически ничего общего
Jeer (2004-09-03 14:43:00) [7]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 = 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 = Scramble files with password
-r = recurse subdirs -$[drive] = save volume label
-[mmddyy] = Compress files before|after specified date (default=today)
-e[x,n,s] = maXimal compression/Normal compression/Speed(fast) compression
- = store pathnames | p=recursed into | P=specified & recursed into
- = | w=include | W=don't include | Hidden/System files
- = | 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.
Алхимик (2004-09-03 14:42:00) [8]В ShellExecute() пишешь команду
'С:\...\winrar <параметры упаковки распаковки>'
Zloy (2004-09-03 14:38:00) [9]народ чего вы прикалываетесь то, есть вопрос - если есть что ответить по теме, буду признателен, если ничего, то чего блистать своим юмором, который в принципе совсем не к месту
TUser (2004-09-03 14:14:00) [10]Я бы добавил еще кнопку Help. Или это выходит за пределы ТЗ?
GuAV (2004-09-03 14:05:00) [11]У винрара список в хэлпе.
Digitman (2004-09-03 14:04:00) [12]
> с помощью двух кнопок
ну уж без "помощи кнопок" тут никак не обойтись
без "кнопок" ни один алгоритм и ни один архиватор работать не будет ... т.е. есть кнопки - задача реализуема, нет кнопок - совсем кирдык
clickmaker (2004-09-03 13:59:00) [13]
> [4] Zloy © (03.09.04 13:57)
> ну это и так все понятно, я имею команды для пользования
> архиватором
Обычно архиваторы сами выдают список своих команд, если их запускать без параметров
Zloy (2004-09-03 13:57:00) [14]ну это и так все понятно, я имею команды для пользования архиватором
clickmaker (2004-09-03 13:41:00) [15]
> [2] Zloy © (03.09.04 13:39)
> спасибо, а не подскажите с помощью каких компонентов и функций
> это осуществить
TForm, TButton
ShellExecute()
Zloy (2004-09-03 13:39:00) [16]спасибо, а не подскажите с помощью каких компонентов и функций это осуществить, просто я уже больше года не писал на Дельфи и все из головы вылетело
Cobalt (2004-09-03 00:28:00) [17]1) Описываешь полностьюповедение, вплоть до случаев наличия файлов с подобным именем, и отсутствия места на жёстком диске или флешке.
2) Только после этого начинаешь писать