diff --git a/rtl/objpas/classes/classesh.inc b/rtl/objpas/classes/classesh.inc index 785766ac67..6d9c45d55a 100644 --- a/rtl/objpas/classes/classesh.inc +++ b/rtl/objpas/classes/classesh.inc @@ -1124,7 +1124,7 @@ type procedure WriteWord(w : Word); procedure WriteDWord(d : Cardinal); procedure WriteQWord(q : QWord); - Procedure WriteAnsiString (const S : String); + Procedure WriteAnsiString (const S : String); virtual; property Position: Int64 read GetPosition write SetPosition; property Size: Int64 read GetSize write SetSize64; end; @@ -1260,9 +1260,9 @@ type Destructor Destroy; override; function ReadUnicodeString(Count: Longint): UnicodeString; procedure WriteUnicodeString(const AString: UnicodeString); - function ReadAnsiString(Count: Longint): AnsiString; - procedure WriteAnsiString(const AString: AnsiString); - function ReadString(Count: Longint): string; + function ReadAnsiString(Count: Longint): AnsiString; overload; + procedure WriteAnsiString(const AString: AnsiString); override; + function ReadString(Count: Longint): string; procedure WriteString(const AString: string); property DataString: string read GetDataString; Property UnicodeDataString : UnicodeString Read GetUnicodeDataString; diff --git a/rtl/objpas/classes/streams.inc b/rtl/objpas/classes/streams.inc index 29b65a0914..cd7419254c 100644 --- a/rtl/objpas/classes/streams.inc +++ b/rtl/objpas/classes/streams.inc @@ -1655,6 +1655,7 @@ begin NewLen:=Size-FPosition; If NewLen>Count then NewLen:=Count; Result:=FEncoding.GetAnsiString(FBytes,FPosition,NewLen); + Inc(FPosition,NewLen); end; procedure TStringStream.WriteAnsiString(const AString: AnsiString); @@ -1704,6 +1705,7 @@ begin begin SetLength(Result, NewLen); Move(FBytes[FPosition],Result[1],NewLen); + inc(FPosition,Newlen); end; end;