From: <ou...@us...> - 2009-04-19 19:40:26
|
Revision: 2740 http://jcl.svn.sourceforge.net/jcl/?rev=2740&view=rev Author: outchy Date: 2009-04-19 19:40:23 +0000 (Sun, 19 Apr 2009) Log Message: ----------- Update the string seek position when Seek method is called and when the stream size is changed. Modified Paths: -------------- trunk/jcl/source/common/JclStreams.pas Modified: trunk/jcl/source/common/JclStreams.pas =================================================================== --- trunk/jcl/source/common/JclStreams.pas 2009-04-19 16:04:07 UTC (rev 2739) +++ trunk/jcl/source/common/JclStreams.pas 2009-04-19 19:40:23 UTC (rev 2740) @@ -529,8 +529,10 @@ FCharacterWriter: TJclStreamSetNextCharFunc; FPeekPosition: Int64; function GetCalcedSize: Int64; override; + procedure SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64); override; public constructor Create(AStream: TStream; AOwnsStream: Boolean = False); virtual; + function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override; function ReadString(var Buffer: string; Start, Count: Longint): Longint; overload; function ReadString(BufferSize: Longint = 4096): string; overload; function ReadAnsiString(var Buffer: AnsiString; Start, Count: Longint): Longint; overload; @@ -2990,6 +2992,18 @@ until ProcessedLength = 0; end; +function TJclStringStream.Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; +begin + Result := inherited Seek(Offset, Origin); + FPeekPosition := FPosition; +end; + +procedure TJclStringStream.SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64); +begin + inherited SetSize(NewSize); + FPeekPosition := FPosition; +end; + function TJclStringStream.SkipBOM: Longint; var Pos: Int64; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |