Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / как программно сжать файл? / 11 сообщений из 11, страница 1 из 1
23.12.2004, 17:42
    #32842463
dburtsev1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно сжать файл?
Есть стандартные утилиты EXPAND COMPRESS и т.д. Есть возможность программно разжать файлы используя функции типа LZCopy. Мне надо функцию, противоположную LZCopy - не могу найти.
...
Рейтинг: 0 / 0
23.12.2004, 18:38
    #32842593
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно сжать файл?
может, zlib подойдет?
...
Рейтинг: 0 / 0
23.12.2004, 21:19
    #32842782
dburtsev1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно сжать файл?
Zip-ов всяких много, хороших и разных. Я хотел попробовать обойтись встроенными средствами.
...
Рейтинг: 0 / 0
23.12.2004, 22:25
    #32842822
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно сжать файл?
Тогда неплохо бы уточнить, встроенными средствами чего?
Или я что-то пропустил?...
...
Рейтинг: 0 / 0
24.12.2004, 23:07
    #32844668
dburtsev1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно сжать файл?
DocAlТогда неплохо бы уточнить, встроенными средствами чего?
Или я что-то пропустил?...
Встроенными средствами ОС. В данном случае - Win32.

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

Всё вышесказанное - моё IMHO и на истину в последней инстанции не претендует.
...
Рейтинг: 0 / 0
27.12.2004, 07:52
    #32845316
Sie
Sie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно сжать файл?
авторВстроенными средствами ОС. В данном случае - Win32.
А оно есть?
...
Рейтинг: 0 / 0
28.12.2004, 17:51
    #32848491
dburtsev1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно сжать файл?
Sie авторВстроенными средствами ОС. В данном случае - Win32.
А оно есть?
Есть. Но только половина. ;0)
...
Рейтинг: 0 / 0
29.12.2004, 19:50
    #32850572
S.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно сжать файл?
авторВстроенными средствами ОС. В данном случае - Win32.
Чтобы в следующей ОС оно было уже другое?
авторЕсть. Но только половина. ;0)Пользуйся zip- ами, хорошими и разными.
...
Рейтинг: 0 / 0
03.01.2005, 17:34
    #32853244
dburtsev1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно сжать файл?
S.G. авторВстроенными средствами ОС. В данном случае - Win32.
Чтобы в следующей ОС оно было уже другое?
Предлагаешь начинать написание прикладной аппликухи с написания ядра ОС?
...
Рейтинг: 0 / 0
04.01.2005, 02:03
    #32853371
mv
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
04.01.2005, 19:32
    #32853848
dburtsev1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно сжать файл?
спасибо
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / как программно сжать файл? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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