Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Архивация таблиц Paradox... [D7, XP]


Asail ©   (2005-11-14 11:08:00) 

Здрасьте!!!
Вопрос такой: Есть набор таблиц paradox. Требуется время от времени
архивировать данны в zip. Все было хорошо пока не возникла
необходимость запаролировать таблицы. После чего сжатие данных
при архивации стало практически нулевым, что не есть хорошо.
Я понимаю, что проблема в криптовании данных в таблице (которое мне
вобщем и не нужно, т.к. пароль используется как защита от "дурака",
а не реальная степень защиты).
Вопрос в том, можно ли это как-то обойти (отключить шифрацию,
например) ?
Спасибо...


Asail   (2005-11-14 14:33:00) [1]

Спасибо за предложение!!!
Я хотел немного другое:
Архив может быть не запаролирован. То что должно быть с паролем, так это
сами таблицы. Хотя, я проверил твою идею и получил несколько странные
результаты:
Для архивации я использую vcl библиотеку ZipForge. При использовании
пароля размер zip архива не изменился, но при попытке архивации вручную
с помощью WinRar с паролем архив стал в ~2 раза меньше чем в WinRar без
пароля. Странно ....


svfilatua   (2005-11-14 14:08:00) [2]

procedure
var
 a1 : String;
 b1 : String;
begin
 dt:=Label2.Caption;
 dt1:=dt+'\*.*';
 dt2:='-a -whs -r -P -s'+dt;
 if MessageDlg('Вы уверены, что хотите закрыть этот день ?',
   mtConfirmation, [mbYes, mbNo],0) = mrNo then Abort else
   MessageDlg('Ну-с-с...  До завтра !',mtInformation,[mbOk],0);
   Table1.Active:=False;
   RAhtButton1.Enabled:=True;
   RAhtButton2.Enabled:=False;
   RAhtButton3.Enabled:=False;
   RAhtButton4.Enabled:=False;
   ShellExecute(Handle, nil, PChar('pkzip.exe'), PChar(dt2+' '+dt+' '+dt1), nil, SW_RESTORE);
   Delay(3000);
   Deletedirectory(dt);
   a1:=ExtractFileName(PChar(dt+'.zip'));
   b1:=DirPrg+'\Arh_day\'+a1;
   CopyFile(PChar(a1), PChar(b1), False);
   if FileSearch (a1, DirPrg+'\') <> '' then
   DeleteFile(PChar(DirPrg+'\'+a1));
   Label2.Caption:='        ';
end;

В этом примере идёт арживация с паролем на архив, причём пароль устанавливается по определённому правилу... посмотри код, думаю разберёшься


Наверх

Титульная страница Поиск, карта сайта Написать письмо