powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / как программно сжать файл?
11 сообщений из 11, страница 1 из 1
как программно сжать файл?
    #32842463
dburtsev1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть стандартные утилиты EXPAND COMPRESS и т.д. Есть возможность программно разжать файлы используя функции типа LZCopy. Мне надо функцию, противоположную LZCopy - не могу найти.
...
Рейтинг: 0 / 0
как программно сжать файл?
    #32842593
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может, zlib подойдет?
...
Рейтинг: 0 / 0
как программно сжать файл?
    #32842782
dburtsev1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zip-ов всяких много, хороших и разных. Я хотел попробовать обойтись встроенными средствами.
...
Рейтинг: 0 / 0
как программно сжать файл?
    #32842822
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда неплохо бы уточнить, встроенными средствами чего?
Или я что-то пропустил?...
...
Рейтинг: 0 / 0
как программно сжать файл?
    #32844668
dburtsev1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DocAlТогда неплохо бы уточнить, встроенными средствами чего?
Или я что-то пропустил?...
Встроенными средствами ОС. В данном случае - Win32.

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

Всё вышесказанное - моё IMHO и на истину в последней инстанции не претендует.
...
Рейтинг: 0 / 0
как программно сжать файл?
    #32845316
Sie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sie
Гость
авторВстроенными средствами ОС. В данном случае - Win32.
А оно есть?
...
Рейтинг: 0 / 0
как программно сжать файл?
    #32848491
dburtsev1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sie авторВстроенными средствами ОС. В данном случае - Win32.
А оно есть?
Есть. Но только половина. ;0)
...
Рейтинг: 0 / 0
как программно сжать файл?
    #32850572
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВстроенными средствами ОС. В данном случае - Win32.
Чтобы в следующей ОС оно было уже другое?
авторЕсть. Но только половина. ;0)Пользуйся zip- ами, хорошими и разными.
...
Рейтинг: 0 / 0
как программно сжать файл?
    #32853244
dburtsev1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G. авторВстроенными средствами ОС. В данном случае - Win32.
Чтобы в следующей ОС оно было уже другое?
Предлагаешь начинать написание прикладной аппликухи с написания ядра ОС?
...
Рейтинг: 0 / 0
как программно сжать файл?
    #32853371
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В дельфи, в

C:\Program Files\Borland\Delphi7\Source\Rtl\Common,

есть интерфейсный файл ZLib.pas

Он - для доступа к самой что ни на есть стандартной, встроенной в систему библиотеке компрессии/декомпресии.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
uses ...Zlib;

procedure ExportToZStrem(OutputFile: TFileStream);
var
   i : integer;
   dtSize : Integer;
   currPosition : Integer;
   cmpStream : TCompressionStream;
   memStream : TMemoryStream;
   memCmpStream : TMemoryStream;
   SavedCursor : TCursor;
begin
 ...
 memStream := TMemoryStream.Create;
 memCmpStream := TMemoryStream.Create;
 cmpStream := TCompressionStream.Create(clMax, memCmpStream);
 SavedCursor := Cursor;
 Cursor := crSQLWait;

 try
   ... // Что-то как - нибудь записали в memStream
   memStream.Write('Всем привет!',SizeOf('Всем привет!'));
   memStream.Position :=  0 ;

   cmpStream.CopyFrom(memStream, memStream.Size); // Сжать и в файл
   FreeAndNil(cmpStream); // Для освобождения буфера сжатого потока и
                          // правильного его позиционирования
   dtSize := memCmpStream.Size;

   OutputFile.Write(dtSize, SizeOf(dtSize));

   memCmpStream.Position :=  0 ;
   OutputFile.CopyFrom(memCmpStream, dtSize);
 finally
   ...
   if Assigned(memStream) then FreeAndNil(memStream);
   if Assigned(memCmpStream) then FreeAndNil(memCmpStream);
   if Assigned(cmpStream) then FreeAndNil(cmpStream);
   Cursor := SavedCursor;

 end;

end;

// Возможны варианты


...
Рейтинг: 0 / 0
как программно сжать файл?
    #32853848
dburtsev1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / как программно сжать файл?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]