Maks150988
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору psa1974 Опа, только что заметил что я оказывается пытался сжать данные, а не расжать (CompressBuf использовал в DeCompressGzipString). Сделал так Код: DecompressBuf(Addr(InpStr[1]), InpSize, 0, OutBuf, OutSize); | Но опять исключение вылетает. Код переделал вот так, чего-то от UniqueString толку нет, хотя я наверное опять намудрил... Далее Теперь впринципе загружает все, только надо бы это дело расжать. Еще попались примеры, с ними такие же дела с исключением. Ну первый надо полагать уже ошибку содержит где первым параметром в функции распаковки идет @Input[1]. Код: Function DeCompressString(Input: String): String; Var Buffer: Pointer; BufSize: Integer; Begin Buffer := nil; Try DeCompressBuf(@Input[1], Length(Input), 0, Buffer, BufSize); SetLength(Result, BufSize); Move(Buffer^, Result[1], BufSize); Finally If Buffer <> nil Then FreeMem(Buffer); End; End; function DecompressFrom(const instring : string) : string; var p : pointer; size : integer; begin DecompressBuf(addr(instring[1]),length(instring),trunc(length(instring)/0.7) ,p,size); Setlength(Result,size); Move(p^,Result[1],size); FreeMem(p); end; |
|