Следующий код выдает EZDecompressionError с сообщением «Недопустимая операция ZStream» всякий раз, когда в строке
Reader.Free
выполнено. Может кто-нибудь сказать мне, что не так с этим кодом?
Reader := nil;
Decompressor := nil;
InputFile := TFileStream (FileName, fmOpenRead);
try
Decompressor := TDecompressionStream.Create (InputFile);
Reader := TReader.Create (Decompressor, 1024);
SomeString := Reader.ReadString;
finally
Reader.Free
Decompressor.Free;
InputFile.Free;
end;
Я проверил, чтобы изменить порядок команд освобождения памяти, но это, похоже, не помогает. Исключение строки Reader.Free приводит к утечке памяти.