Delphi-Quellcode:
Stream.Write(ptr^, len); // dereferenziert
Stream.Read(Bytes, len); //Stream.Read(@Bytes[0], len); // nicht dereferenziert
Stream.Write(Bytes, len); //Stream.Write(@Bytes[0], len); // nicht dereferenziert <<<<<<<
Stream.Read(Bytes, len); //Stream.Read(@Bytes[0], len); // nicht dereferenziert
Ganz vergessen ... Stream kann jetzt auch TByte direkt
Delphi-Quellcode:
TStream = class(TObject) // altes Delphi
function Read(var Buffer; Count: Longint): Longint; virtual; abstract;
function Write(const Buffer; Count: Longint): Longint; virtual; abstract;
end;
TStream = class(TObject) // neueres Delphi
function Read (var Buffer; Count: Longint): Longint; overload; virtual;
function Write(const Buffer; Count: Longint): Longint; overload; virtual;
function Read( Buffer: TBytes; Offset, Count: Longint): Longint; overload; virtual;
function Write(const Buffer: TBytes; Offset, Count: Longint): Longint; overload; virtual;
function Read (var Buffer: TBytes; Count: Longint): Longint; overload;
function Write(const Buffer: TBytes; Count: Longint): Longint; overload;
end;
Was heißt denn "geht" nicht?
Auf den zweiten Blick seh ich jedenfalls keinen Fehler mehr.
Bist du auf genau dieses Speichern angewiesen?
Wie wäre es mit einer Alternative?
z.B. TStringStream oder TReader+TWriter