На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Работа с интерфейсом XZ (не грузится liblzma.dll в примере)
    Пытаюсь протестить работу XZ, сорс интерфэйса тут
    https://github.com/delphiunderground/xz-examples-delphi

    ди-эл-эль тут:
    https://tukaani.org/xz/xz-5.2.3-windows.7z

    Как работает встроенная демка не понял даже по исходникам, точнее не понял что там и куда указывать, поэтому немного переделал её:

    ExpandedWrap disabled
      program compress_easy;
       
      uses
        Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
        XZ;
       
      function get_preset:Longword;
      begin
        result:=ord('9')-48;
        result:=result or $80000000;
      end;
       
      var
        StdIn,StdOut: TFileStream; //THandleStream;
        Comp: TXZCompressionStream;
        preset:longword;
      begin
        preset:= get_preset;
        StdIn  := TFileStream.Create('01.exe',  fmOpenRead or fmShareDenyWrite);
        StdOut := TFileStream.Create('01.exe.XZ', fmCreate );
        StdIn.Position := 0;
        Comp := TXZCompressionStream.Create(preset, StdOut);
        try
          Comp.CopyFrom(StdIn, 0);
        finally
          Comp.Free;
          StdIn.Free;
          StdOut.Free;
        end;
      end.


    Запускаю и вылетает ошибка что не найдена liblzma.dll, хотя она рядом с экзешником.
    Как жить, что делать?
    Сообщение отредактировано: Jiro -
      А тебе обязательно именно этот алгоритм? Потому что есть достаточно беспроблемных и бездллных реализаций сжатия.
        Fr0sT
        Да, ты прав протестил это xz, совсем он слабый.

        У меня в коллекции пока только эти:
        LZMA1
        PPMdG
        Brotli
        UCL
        SynLZ
        SynLZO
        Deflate
        ZZip

        Если есть ещё что-то хорошее не откажусь
          Цель-то какая? Собрать все известные форматы, или просто любой для внутренних нужд?
          В каталоге уже смотрел?
            Fr0sT Цель основная жать текст и *.RVE (формат TRichViewEdit) в максимальной степени ну или близкой к идеалу, коим для текста является бротли а для rve lzma2.
            В каталоге ничего нового для себя не нашёл.

            Добавлено
            Fr0sT кстати там в каталоге надо поправить http://www.kluug.net/oxml.php, либа стала платной, а старую версию автор удалил
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0201 ]   [ 16 queries used ]   [ Generated: 18.04.24, 02:40 GMT ]