XTool (2020)

XTool (2020) 0.7.1

Нет прав для скачивания

Yaroslav950

Участник
@dixen18,спс,а я думал она работает также как и остальные dll. Сжимает также быстро?.
 

toolame

Старожил
Проверенный
а как можно вывести информацию из консоли в файл? (нужны логи работы хтулла)
опции для лога нет
Код:
xtool.exe ..... > xtool.log
такое дает пустой файл, что говорит о чей то криворукости...
Код:
xtool.exe ..... 2> xtool.log
это тоже самое
 

Shegorat

Lord of Madness
Администратор
@toolame, скорее всего логи пишутся в stderr, чтобы была возможность использовать stdin/stdout для обработки файлов.
 

Mickey1s

Ветеран
Модератор
@toolame,
Syntax has been updated as per request from Cesar82:
--dedup can also be -dd
--dedup=#, -dd#
--dbase, -db
--diff=#,-df#
--verbose, -v
--skip, -s

используй --verbose, -v

например так: xtool.exe precomp -mreflate -c32mb -t100p --verbose - - < %1 > %1.out
 

vint56

Ветеран
Проверенный
toolame батник не работает --verbose, -v не выводит информацию
 

Edison007

Ветеран
Модератор
xtool.exe precomp -mzlib -c32mb -t100p-1 -v <test.dat >test.xtl 2>>log.txt
А, лол, таким образом выходной файл нулевого размера. Видимо чет накосячено и никак :\

Во, вроде пофисксил:
xtool.exe precomp -mzlib -c32mb -t100p-1 -v - - <test.dat >test.xtl 2>log.txt
 
Последнее редактирование:

toolame

Старожил
Проверенный
используй --verbose, -v
оно конечно работает, лог пишется, подробный... только вот нужной информации там нету))
всего то надо: сколько было > сколько стало
наверно проще фриарком прогнать только хтулл, с логом в нужное место)
извращуга!
проще же
Код:
xtool.exe precomp -mzlib -c32mb -t100p-1 -v test.dat test.xtl 2>log.txt
 

Edison007

Ветеран
Модератор
По идее можно тут поправить
Код:
procedure EncodeStats;
var
  FHandle: THandle;
  SBInfo: TConsoleScreenBufferInfo;
  CLine: Integer;
  SL: TStringList;
  Coords: TCoord;
  ulLength: Cardinal;

  procedure Update;
  var
    I: Integer;
    TS: TTimeSpan;
    CreationTime, ExitTime, KernelTime, UserTime: TFileTime;
    TT: TSystemTime;
    I64: Int64;
  begin
    GetProcessTimes(GetCurrentProcess, CreationTime, ExitTime, KernelTime,
      UserTime);
    FileTimeToSystemTime(TFileTime(Int64(UserTime) + Int64(KernelTime)), TT);
    SL[0] := 'Streams: ' + EncInfo.Processed.ToString + ' / ' +
      EncInfo.Count.ToString;
    TS := Stopwatch.Elapsed;
    SL[1] := 'Time: ' + Format('%0:.2d:%1:.2d:%2:.2d',
      [TS.Hours + TS.Days * 24, TS.Minutes, TS.Seconds]) + ' (CPU ' +
      Format('%0:.2d:%1:.2d:%2:.2d', [TT.wHour + Pred(TT.wDay) * 24, TT.wMinute,
      TT.wSecond]) + ')';
    I64 := EncInfo.DecMem0 + EncInfo.DecMem1;
    I64 := I64 div 1024;
    if StoreDD > -2 then
    begin
      I := 4;
      SL[2] := 'Duplicates: ' + EncInfo.DupCount.ToString + ' (' +
        ConvertKB2TB(EncInfo.DecMem2 div 1024) + ') [' +
        ConvertKB2TB(EncInfo.DupSize1 div 1024) + ' >> ' +
        ConvertKB2TB(EncInfo.DupSize2 div 1024) + ']     ';
      if StoreDD > 0 then
      begin
        I := 5;
        SL[3] := 'Srep decompression memory: ' +
          ConvertKB2TB(EncInfo.SrepMem * 1024) + ' [' +
          ConvertKB2TB((EncInfo.SrepMem * 1024) + (EncInfo.DecMem3 div 1024)) +
          IfThen(EncInfo.DecMem3 > 0, '*', '') + ']     ';
      end;
    end
    else
      I := 3;
    SL[I] := 'Size: ' + ConvertKB2TB(EncInfo.InSize div 1024) +
      IfThen(StoreDD > -2,
      ' >> ' + ConvertKB2TB((EncInfo.InflSize + EncInfo.DupSize2) div 1024), '')
      + ' >> ' + ConvertKB2TB(EncInfo.InflSize div 1024) +
      IfThen(StoreDD > 0, ' >> ' + ConvertKB2TB((EncInfo.SrepSize) div 1024),
      '') + IfThen(COMPRESS, ' >> ' + ConvertKB2TB((EncInfo.CompSize) div 1024),
      '') + '      ';
    SetConsoleCursorPosition(FHandle, Coords);
    WriteConsole(FHandle, PChar(SL.Text), Length(SL.Text), ulLength, nil);
  end;

begin
  FHandle := GetStdHandle(STD_ERROR_HANDLE);
  GetConsoleScreenBufferInfo(FHandle, SBInfo);
  Coords.X := 0;
  Coords.Y := SBInfo.dwCursorPosition.Y;
  SL := TStringList.Create;
  SL.Add('Streams: 0 / 0');
  SL.Add('Time: 00:00:00');
  if StoreDD > -2 then
  begin
    SL.Add('Duplicates: 0 (0.00 MB) [0.00 MB  >> 0.00 MB]');
    if StoreDD > 0 then
      SL.Add('Srep decompression memory: 0.00 MB [0.00MB]');
  end;
  SL.Add('');
  SL.Add('Size: ');
  SL.Add('');
  while Stopwatch.IsRunning do
  begin
    Update;
    Sleep(500);
  end;
  Update;
  SL.Free;
end;
 
Сверху