Oh ja, da scheint mir noch folgende Zeile zu fehlen:
Delphi-Quellcode:
if FileStream<>nil then
begin
FileStream.Seek(MyPosition,soFromBeginning);
NumberOfReadByte:=Filestream.Read(buf^,count);
buf:=pointer(cardinal(buf)+NumberOfReadByte); //<--- die hier
end;
Und an der Zeile ist auch noch was komsich:
result:=NumberOfReadByte
Was ist wenn ein Block aus FMemory über die Länge von Filestream hinausgeht?
Was ist wenn von außen die erwartete Größe (=mySize) ungleich NumberOfReadByte ist? (Dann gibt übrigens copyfrom irgendsoein EReadError.)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.