Bonjour,

J'ai un code qui utilise TZCompressionStream, qui fonctionne sous Delphi 10.4, et qui ne fonctionne plus sous Delphi 11.
Même en simplifiant au minimum, ça ne veut pas fonctionner : j'ai une erreur "invalid zstream operation". En debug, ça s'arrête dans la fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
function TZCompressionStream.Seek(const Offset: Int64; Origin: TSeekOrigin): Int64;
begin
  if (offset = 0) and (origin = soCurrent) then
  begin
    result := FZStream.total_in;
  end
  else raise EZCompressionError.Create(SZInvalid);  <== ici
end;

Même en simplifiant au mnimum, ça ne fonctionne pas sous D11 (mais c'est ok sur les versions précédentes) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
uses system.ZLib;
 
procedure TForm22.Button1Click(Sender: TObject);
var xTest : TStringStream;
	xZip : TZCompressionStream;
	xContenuZip : TMemoryStream;
begin
	xTest := TStringStream.Create('essai');
	xTest.Position := 0;
 
	xContenuZip := TMemoryStream.Create;
	xZip := TZCompressionStream.Create(xContenuZip);
	xZip.CopyFrom(xTest, xTest.Size);     <== exception
	xZip.Free;			
end;
Que faut-il changer pour Delphi 11 ??