Und so machst du es:
Beispiele:
Delphi-Quellcode:
procedure readBooleanFromStream(var b1: Boolean; const Stream: TStream);
begin
Stream.Read(b1, sizeOf( Boolean));
end;
// Eigenes Format, erst Länge, dann die eigentlichen Daten
procedure readStringFromStream(var s1: string; const Stream: TStream);
var
i1: integer;
begin
readIntegerFromStream(i1, Stream);
setLength(s1, i1);
Stream.Read(s1[1], i1);
end;
procedure readIntegerFromStream(var i1: integer; const Stream: TStream);
begin
Stream.Read(i1, sizeof( integer));
end;
Du müßtest jetzt nur die entsprechenden Variablentypen lesen. z.B. ein Word von der Position 0 um die ReplayVersion herauszubekommen. Mit Stream.position kannst du beliebig hin und her springen.
Unter
Win32 ist ein Integer ein DWord, verwende daher unbedingt Datentypen wie DWord, Word, Byte etc., da sich die definition von "Integer" jederzeit ändern kann.
Wer später bremst ist eher tot.