* Fix bug where position is not advanced when calling ReadAnsiString/ReadString

git-svn-id: trunk@47061 -
This commit is contained in:
michael 2020-10-07 10:15:13 +00:00
parent 8ca7446bf0
commit 0baf7db5e4
2 changed files with 6 additions and 4 deletions

View File

@ -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;

View File

@ -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;