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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2008, 19:46   #1
urels
 
Регистрация: 23.01.2008
Сообщений: 4
По умолчанию Zip архив

необходимо создать zip архив (и запихнуть в него несколько файлов). только не используя компонентов. чисто на Winapi...... как это сделать? подскажите плз..
urels вне форума Ответить с цитированием
Старый 24.04.2008, 20:01   #2
N!ckeL
Форумчанин
 
Регистрация: 29.03.2008
Сообщений: 300
По умолчанию

Цитата:
только не используя компонентов
Тогда придётся учить алгоритм сжатия файлов...
Цитата:
чисто на Winapi
Помойму WinZip не использует WinApi для сжатия, или я ошибаюсь?
Карп преодолевший водопад становится драконом.
N!ckeL вне форума Ответить с цитированием
Старый 24.04.2008, 20:08   #3
urels
 
Регистрация: 23.01.2008
Сообщений: 4
По умолчанию

Цитата:
Помойму WinZip не использует WinApi для сжатия, или я ошибаюсь?
ну винда ведь умеет сжимать файлы в zip вот я подумал мож есть какие то функции..
urels вне форума Ответить с цитированием
Старый 24.04.2008, 20:12   #4
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

В Delphi есть встроенная функция Zlib юзай её
Hollander вне форума Ответить с цитированием
Старый 24.04.2008, 20:45   #5
urels
 
Регистрация: 23.01.2008
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Hollander Посмотреть сообщение
В Delphi есть встроенная функция Zlib юзай её
а можно пример? именно того, что я прошу...
urels вне форума Ответить с цитированием
Старый 24.04.2008, 20:47   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
функция Zlib
Ерунда какая то.... там просто функции зжатия данных и их распаковки... Zip - формат файла, в нем по формату все устроено... это разные вещи
BOBAH13 вне форума Ответить с цитированием
Старый 26.04.2008, 17:25   #7
urels
 
Регистрация: 23.01.2008
Сообщений: 4
По умолчанию

ну че никто не знает? =(
urels вне форума Ответить с цитированием
Старый 26.04.2008, 17:31   #8
Спартак
Пользователь
 
Регистрация: 01.02.2008
Сообщений: 44
По умолчанию

все легко и просто. Недавно написал модуль для работы с Rar-ом из дельфи:
Код:
unit TRarUnit;

interface
type
  TRar = class (TObject)
  public
    function Rar(files : array of string; fcount : byte): Byte;
    function UnRar: Byte;
  end;
  
implementation
uses windows, SysUtils;
{
************************************* TRar *************************************
}
function TRar.Rar(files : array of string; fcount : byte): Byte;
var
  filestr, rarstr: string;
  i, res: Byte;
  
  {
    Выполняет архивирование файлов
    files - массив, содержащий список файлов для архивации
    fcount - количество файлов
    Возвращает:
    0 - операция успешна
    1 - rar.exe не найден
    2 - не все файлы для архивации
  }
  
begin
  filestr := '';
  res := 0;
  for i := 0 to fcount - 1 do
  begin
    filestr := filestr + files[i] + ' ';
    if not(FileExists(files[i])) then
    begin
      res := 2;
      break;
    end;
  end;
  if res = 0 then
  begin
    rarstr := 'rar.exe a a.rar ' + filestr;
    if winexec(PChar(rarstr), SW_SHOWNORMAL) = 2 then res := 1
    else
    begin
      sleep(1000);
      DeleteFile('1.txt');
      DeleteFile('2.txt');
    end;
  end;
  Rar := res;
end;

function TRar.UnRar: Byte;
var
  res: Byte;
  
  {
    Выполняет разорхивирование файлов
    Возвращает:
    0 - все нормально
    1 - не найден unrar.exe
    2 - не найден архив
  }
  
begin
  res := 0;
  if not(FileExists('Unrar.exe')) then res := 1;
  if not(FileExists('b.rar')) then res := 2;
  if res = 0 then WinExec('Unrar.exe e b.rar',SW_SHOWNORMAL);
  UnRar := res;
end;

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить файл в архив Aleksandr Общие вопросы Delphi 9 24.06.2012 12:34
как распакавать zip-архив Олька Помощь студентам 3 02.09.2008 21:54
Архив PAVEL315 Общие вопросы Delphi 8 20.04.2008 19:14
Файловый архив Viteef О форуме и сайтах клуба 4 28.12.2007 02:16
ACCESS - Технический архив student2004X Помощь студентам 1 16.11.2007 14:37