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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2011, 02:42   #1
Mr.Dmitry
Пользователь
 
Аватар для Mr.Dmitry
 
Регистрация: 18.12.2006
Сообщений: 50
По умолчанию Работа с zlib

Всем привет. Прочитал статью на вашем сайте http://pblog.ru/?p=67
В ней говорится об создании архивов zlib. Все прекрасно работает.

Код:
procedure TWait.FormShow(Sender: TObject);
var
 SearchRec:TSearchRec;
 ser:string; //cfg
begin
 if arch=1 then
  begin
   ser:=path+'*.cfg';
   sSaveDialog1.Execute;
   If FindFirst(ser, faAnyFile, SearchRec) = 0 then
  repeat
    if ((SearchRec.Name <> '.') and (SearchRec.Name <> '..')) then
      if (SearchRec.Attr and faDirectory) = 0 then
      CreateDir('c:\cscsarch');
       CopyFile(PChar(path+ExtractFileName(SearchRec.name)),PChar('c:\cscsarch\'+ExtractFileName(SearchRec.name)),false)
       until FindNext(SearchRec) <> 0;
      FindClose(SearchRec);
 end;
 DoFolderAction('c:\cscsarch',sSaveDialog1.FileName,DODO2);
 arch:=0;
 MyRemoveDir('c:\cscsarch');
 Wait.Close;
end;
Но в первой статье говорится о том что процесс архивирования и разархивирования отображается на gauge. А у меня ни чего не отображается ( И в вдогонку еще один вопросик. После всего прохождения алгоритма форма должна закрыться wair.close но ни чего не происходит, я так понимаю потому что вызываю процедуру wait.close в процедуре wain.show. Как тут быть?
Mr.Dmitry вне форума Ответить с цитированием
Старый 17.02.2011, 03:36   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

попробуи етот компонент
Вложения
Тип файла: zip zipmaster.zip (3.09 Мб, 29 просмотров)
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 17.02.2011, 04:23   #3
Mr.Dmitry
Пользователь
 
Аватар для Mr.Dmitry
 
Регистрация: 18.12.2006
Сообщений: 50
По умолчанию

Цитата:
Сообщение от ArtGrek Посмотреть сообщение
попробуи етот компонент
А другого способа нет?


Код:
//Tючфрхь шыш чруЁєцрхь backup
procedure TWait.FormShow(Sender: TObject);
var
 SearchRec:TSearchRec; //тvтюф Їрщыют т яЁртхы№эюь ЇюЁьрЄх
 serv:string; //cfg
 dirs:string; //¦ряър ё amxx
 types:string;
 path:string;
begin
 //+яЁхфхы*хь яєЄ№ фю яряъш ё ърЁЄрьш
 cstrike:=dir_base;
 position_str:=pos('cstrike',cstrike);
 Delete(cstrike,position_str+8,100);
    dirs:=dir_base;
   position_str:=pos('amxmodx',dirs);
   Delete(dirs,position_str,100);
   CreateDir('c:\cscsarch');
 if arch=1 then
  begin
   serv:=cstrike+'*.cfg';
   sSaveDialog1.Execute;


      Ini:=TIniFile.Create('c:\cscsarch\bk.ini'); //Tючфрхь ini Їрщы
      Ini.WriteString('basic','type','min');
      Ini.WriteString('basic','Path',cstrike); //¦ряшёvтхь яєЄ№ фю ёхЁтхЁр
      ini.free;

   If FindFirst(serv, faAnyFile, SearchRec) = 0 then
  repeat
    if ((SearchRec.Name <> '.') and (SearchRec.Name <> '..')) then
      if (SearchRec.Attr and faDirectory) = 0 then
       CopyFile(PChar(cstrike+ExtractFileName(SearchRec.name)),PChar('c:\cscsarch\'+ExtractFileName(SearchRec.name)),false)
       until FindNext(SearchRec) <> 0;
      FindClose(SearchRec);
 end;
if arch=2 then
  begin
   serv:=cstrike+'*.cfg';
   sSaveDialog1.Execute;

      Ini:=TIniFile.Create('c:\cscsarch\bk.ini'); //Tючфрхь ini Їрщы
      Ini.WriteString('basic','type','med');
      Ini.WriteString('basic','Path',dirs); //¦ряшёvтхь яєЄ№ фю ёхЁтхЁр
      ini.free;

   If FindFirst(serv, faAnyFile, SearchRec) = 0 then
  repeat
    if ((SearchRec.Name <> '.') and (SearchRec.Name <> '..')) then
      if (SearchRec.Attr and faDirectory) = 0 then
       CopyFile(PChar(cstrike+ExtractFileName(SearchRec.name)),PChar('c:\cscsarch\'+ExtractFileName(SearchRec.name)),false)
       until FindNext(SearchRec) <> 0;
      FindClose(SearchRec);
     CopyDirs(dirs,'c:\cscsarch')
  end;
 if arch=3 then
  begin
   position_str:=pos('cstrike',cstrike);
   Delete(cstrike,position_str,100);
   serv:=cstrike+'*.*';
   sSaveDialog1.Execute;

      Ini:=TIniFile.Create('c:\cscsarch\bk.ini'); //Tючфрхь ini Їрщы
      Ini.WriteString('basic','type','max');
      Ini.WriteString('basic','Path',cstrike); //¦ряшёvтхь яєЄ№ фю ёхЁтхЁр
      ini.free;

   If FindFirst(serv, faAnyFile, SearchRec) = 0 then
  repeat
    if ((SearchRec.Name <> '.') and (SearchRec.Name <> '..')) then
      if (SearchRec.Attr and faDirectory) = 0 then
       CopyFile(PChar(cstrike+ExtractFileName(SearchRec.name)),PChar('c:\cscsarch\'+ExtractFileName(SearchRec.name)),false)
       until FindNext(SearchRec) <> 0;
      FindClose(SearchRec);
     CopyDirs(cstrike,'c:\cscsarch')
  end;
  if (arch<=3) and (arch>0) then
   begin
    DoFolderAction('c:\cscsarch',sSaveDialog1.FileName+'.dat',DODO2);
   end
  else
   begin
    De_DoFolderAction('c:\cscsarch\',Main.sOpenDialog2.FileName,DODO3);
    Ini:=TIniFile.Create('c:\cscsarch\bk.ini');
    types:=Ini.ReadSTRING('basic','type','');
    path:=Ini.ReadSTRING('basic','path','');
    ini.free;
    cstrike:=dir_base;
   position_str:=pos('cstrike',cstrike);
   Delete(cstrike,position_str+8,100);
   dirs:='c:\cscsarch\*.*';
    arch:=0;
    DeleteFile('c:\cscsarch\bk.ini');
     If FindFirst(dirs, faAnyFile, SearchRec) = 0 then
  repeat
    if ((SearchRec.Name <> '.') and (SearchRec.Name <> '..')) then
      if (SearchRec.Attr and faDirectory) = 0 then
       CopyFile(Pchar('c:\cscsarch\'+ExtractFileName(SearchRec.name)),Pchar(cstrike+ExtractFileName(SearchRec.name)),false);
       DeleteFile('c:\cscsarch\'+ExtractFileName(SearchRec.name))
       until FindNext(SearchRec) <> 0;
      FindClose(SearchRec);
       CopyDirs('c:\cscsarch',path)
   end;
      arch:=0;
    MyRemoveDir('c:\cscsarch');
  Wait.Close;
end;
Вот такой вот у меня сейчас код, и переписывать все что связано с архивом мне не очень то хочется (
Mr.Dmitry вне форума Ответить с цитированием
Старый 18.02.2011, 02:17   #4
Mr.Dmitry
Пользователь
 
Аватар для Mr.Dmitry
 
Регистрация: 18.12.2006
Сообщений: 50
По умолчанию

Значит других вариантов нет? (
Mr.Dmitry вне форума Ответить с цитированием
Старый 18.02.2011, 07:45   #5
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию

Есть!
Иди на delphisources.ru, там в разделе исходники есть пример работы с zlib.
Код очень компактный. И доступен для понимания.
Хакинг - не преступление, а способ выживания.
Ghost of Night вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
zlib library chuvakner Помощь студентам 2 27.10.2010 23:57
TMemoryStream и Zlib Sanprof Общие вопросы Delphi 13 28.05.2010 16:43
Алгоритм сжатия+ zlib Воин-Леший Общие вопросы Delphi 1 09.12.2007 15:05
Zlib.dll RoadTrain Общие вопросы Delphi 3 08.05.2007 13:41
ZLib Simply-Art Обсуждение статей 3 03.03.2007 08:24