Рейтинг:
0
Rick York
Функция принимает указатель на входной буфер, поэтому вы должны предоставить его. Итак, учитывая имя файла и тот факт, что вы должны предоставить буфер данных, следующим шагом будет чтение файла в буфер данных. Что бы я сделал, так это определил, насколько велик файл, выделил буфер памяти такого размера, а затем прочитал файл в буфер. Вам также нужно выделить выходной буфер, и в этот момент Вы будете готовы вызвать функцию со всеми ее аргументами. В руководстве указано, каковы требования к выходному буферу.
Member 13803981
У меня есть проблема с буферами, кажется, это нормально после сжатия(но все же у меня есть вопросы к размеру буфера, почему он должен быть таким, как в формуле выше), у меня просто есть файл почти в 2 раза меньше и некоторые символы внутри. Но после декомпрессии выходной файл никогда не равен оригиналу - проблема в том, что мне нужен размер выходного буфера для декомпрессии, но нет никаких предложений, насколько он должен быть большим, я попытался вручную найти лучшее число, но мне нужно сжать любые файлы, и размер должен вычисляться автоматически. Есть то, что руководство говорит о декомпрессии:
in указатель на входной буфер (сжатые данные)// char * from file
out указатель на выходной буфер (несжатые данные) // unsigned char *out
insize размер буфера ввода //в = GetFileSize(файл);
outsize размер выходного буфера //???
Выходной буфер должен быть способен удерживать байты большого размера. Я могу работать только с текстовыми файлами wirh, потому что я могу читать только их после этой "декомпрессии"
Rick York
Во-первых, я думаю, что вы должны опубликовать это как отдельный вопрос, потому что в противном случае вы ограничиваете свои варианты ответа.
Во-вторых, я могу сделать дикое предположение, но это, вероятно, не самый лучший вариант. В некоторых библиотеках сжатия есть функция для получения размера несжатых данных. Вы уверены, что у BCL его нет?
Member 13803981
Спасибо за ответ. Нет, я не уверен в этом, я постараюсь лучше понять эту библиотеку. С другой стороны, я хочу добавить размер исходного файла в сжатый файл, и тогда у меня всегда будет размер распакованного файла, который мне нужен.