Вверх ↑
Ответов: 4628
Рейтинг: 749
#1: 2016-02-02 17:34:24 ЛС | профиль | цитата
В наличии такой компонент:

[Type]
Class=Element
Info=Сжатие и распаковка данных методом GZip
Tab=Files


[Property]
@Level=Степень компрессии для методов сжатия данных. От 0 до 9. 0 - без сжатия|1|8|0,9
SrcFileName=Имя исходного файла для методов doCompressFile, doDecompressFile|2|
DstFileName=Имя результирующего файла для методов doCompressFile, doDecompressFile|2|
InBuffer=Размер входящего буфера в памяти при сжатии/распаковке потоков и файлов|1|524288
OutBuffer=Размер исходящего буфера в памяти при сжатии/распаковке потоков и файлов|1|524288
InclHeader=Добавить заголовок GZip (10 байт) перед конечными данными при упаковке и проверить его наличие в исходных данных при распаковке. Для совместимости со сторонними программами должно быть включено.|4|1|False,True
InclTrailer=Добавить контрольную сумму и размер (8 байт) после конечных данных при упаковке. Для совместимости со сторонними программами должно быть включено.|4|1|False,True

[Methods]
doCompress=Сжимает строку Data|1|2
doDecompress=Распаковывает строку Data|1|2
doCompressFile=Упаковать файл с именем SrcFileName и сохранить результат под именем DstFileName. Событие onResult выдаёт размер конечного файла|1|2
doDecompressFile=Распаковать файл с именем SrcFileName и сохранить результат под именем DstFileName. Событие onResult выдаёт размер конечного файла|1|2
*doAbort=Прервать текущую операцию с файлом или потоком|1|0
*doCompressStream=Упаковать Count байт из текущей позиции потока SrcStream и записать результат в текущую позицию потока DstStream. Событие onResult выдаёт количество данных, записанных в DstStream.|1|10
*doDecompressStream=Распаковать Count байт из текущей позиции потока SrcStream и записать результат в текущую позицию потока DstStream. Событие onResult выдаёт количество данных, записанных в DstStream.|1|10

onResult=Событие происходит всякий раз после окончания сжатия/распаковки. Для строки выдает в поток результат. Для файлов и потоков - выдаёт количество записанных данных|2|2
onError=Событие происходит при ошибках и выдает в поток код ошибки|2|1

Data=Строка для сжатия/распаковки|4|2
SrcFileName=Имя исходного файла для методов doCompressFile, doDecompressFile|4|2
DstFileName=Имя результирующего файла для методов doCompressFile, doDecompressFile|4|2
*SrcStream=Исходный поток для методов doCompressStream, doDecompressStream|4|10
*DstStream=Результирующий поток для методов doCompressStream, doDecompressStream. Не может быть тем же, что и SrcStream|4|10
*Count=Количество байт, которые будут сжаты/распакованы методами doCompressStream, doDecompressStream|4|1

Цена будет зависеть от того, желаешь компонент в личное использование или выкладывать публично.
Функционал подходит?

Ещё немного доработаю в плане большей всеядности файлов (обрабатываются не все варианты заголовка архива).
карма: 26

0