| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Сжатие строк |
| Автор: Burka 5.3.2011, 10:49 |
| Подскажите какой нибудь алгоритм для хорошего сжатия строк. Мне нужно сжимать текстовые строки, которые могут быть размером до 100 мб, для передачи по GPRS. Я находил только примеры на с++ для файлов, может есть готовые алгоритмы именно для строк? |
| Автор: Frees 5.3.2011, 11:28 |
| ложи строку в поток, а поток сжимай например этим http://www.componentace.com/zip_component_zip_delphi_zipforge.htm. |
| Автор: Burka 5.3.2011, 12:05 |
| А как передать этому компоненту поток? И возможно ли результат получать в качестве строки? |
| Автор: Snowy 5.3.2011, 15:58 |
| TCompressionStream не годится? |
| Автор: cat512 5.3.2011, 15:59 | ||||
Компоненту можно передать только тот тип данных, реализация которого поддерживается его методами. Если поддержка потока не реализованна, то без модификации компонента никак! Но можно привести поток к нужному типу даных, или сразу сформировать структуру нужного типа!
Т.е. ты разбираться с компонентом не хочешь, а хочешь сразу получить готовое решение??? |
| Автор: ZBugz 5.3.2011, 16:26 |
| http://www.yunqa.de/delphi/doku.php/products/ucl/index?DokuWiki=v2hutgd2fp5d4dojqlk6dg11f7 вот неплохой компонет DIUcl, жмет и строки и файлы, примеры есть по всем. |
| Автор: Snowy 5.3.2011, 16:37 |
| DiUcl хорош только размером. Сжатие у него не очень. Зипфорж создан не для сжатия, а для работы с зип архивами. Сжатие у zip то же, что и у TCompressionStream - zlib, но результат больше из-за наличия вспомогательной служебной информации. Если zlib компрессии недостаточно, то нужно подтягивать тяжёлую медленную артиллерию в виде ZLMA компрессора, либо юзать внешний 7zip или WinRAR. |