* rename generic TStringBuilder to TGenericStringBuilder to make code tools happy

git-svn-id: trunk@47553 -
This commit is contained in:
ondrej 2020-11-24 09:43:46 +00:00
parent 233d883731
commit de6f3ea9b5
4 changed files with 158 additions and 158 deletions

View File

@ -1,11 +1,11 @@
{ TStringBuilder } { TGenericStringBuilder }
constructor TStringBuilder.Create; constructor TGenericStringBuilder.Create;
begin begin
Create(DefaultCapacity,Maxint); Create(DefaultCapacity,Maxint);
end; end;
constructor TStringBuilder.Create(const AValue: SBString; aCapacity: Integer); constructor TGenericStringBuilder.Create(const AValue: SBString; aCapacity: Integer);
begin begin
Create(aCapacity,Maxint); Create(aCapacity,Maxint);
if (system.Length(AValue)>0) then if (system.Length(AValue)>0) then
@ -13,25 +13,25 @@ begin
end; end;
constructor TStringBuilder.Create(const AValue: SBString; StartIndex, Alength, constructor TGenericStringBuilder.Create(const AValue: SBString; StartIndex, Alength,
aCapacity: Integer); aCapacity: Integer);
begin begin
Create(Copy(AValue,StartIndex+1,Alength), aCapacity); Create(Copy(AValue,StartIndex+1,Alength), aCapacity);
end; end;
constructor TStringBuilder.Create(aCapacity, aMaxCapacity: Integer); constructor TGenericStringBuilder.Create(aCapacity, aMaxCapacity: Integer);
begin begin
FMaxCapacity:=aMaxCapacity; FMaxCapacity:=aMaxCapacity;
Capacity:=aCapacity; Capacity:=aCapacity;
FLength:=0; FLength:=0;
end; end;
constructor TStringBuilder.Create(aCapacity: Integer); constructor TGenericStringBuilder.Create(aCapacity: Integer);
begin begin
Create(aCapacity,MaxInt); Create(aCapacity,MaxInt);
end; end;
constructor TStringBuilder.Create(const AValue: SBString); constructor TGenericStringBuilder.Create(const AValue: SBString);
begin begin
Create(aValue,DefaultCapacity); Create(aValue,DefaultCapacity);
end; end;
@ -39,31 +39,31 @@ end;
{ Property getter/setter } { Property getter/setter }
function TStringBuilder.GetLength: Integer; function TGenericStringBuilder.GetLength: Integer;
begin begin
Result:=FLength; Result:=FLength;
end; end;
function TStringBuilder.GetCapacity: Integer; function TGenericStringBuilder.GetCapacity: Integer;
begin begin
Result:=System.Length(FData); Result:=System.Length(FData);
end; end;
function TStringBuilder.GetC(Index: Integer): SBChar; function TGenericStringBuilder.GetC(Index: Integer): SBChar;
begin begin
CheckNegative(Index,'Index'); CheckNegative(Index,'Index');
CheckRange(Index,0,Length); CheckRange(Index,0,Length);
Result:=FData[Index]; Result:=FData[Index];
end; end;
procedure TStringBuilder.SetC(Index: Integer; AValue: SBChar); procedure TGenericStringBuilder.SetC(Index: Integer; AValue: SBChar);
begin begin
CheckNegative(Index,'Index'); CheckNegative(Index,'Index');
CheckRange(Index,0,Length-1); CheckRange(Index,0,Length-1);
FData[Index]:=AValue; FData[Index]:=AValue;
end; end;
procedure TStringBuilder.SetLength(AValue: Integer); procedure TGenericStringBuilder.SetLength(AValue: Integer);
begin begin
CheckNegative(AValue,'AValue'); CheckNegative(AValue,'AValue');
@ -77,7 +77,7 @@ end;
procedure TStringBuilder.CheckRange(Idx, Count, MaxLen: Integer); procedure TGenericStringBuilder.CheckRange(Idx, Count, MaxLen: Integer);
begin begin
if (Idx<0) or (Idx+Count>MaxLen) then if (Idx<0) or (Idx+Count>MaxLen) then
@ -85,7 +85,7 @@ begin
end; end;
procedure TStringBuilder.CheckNegative(const AValue: Integer; procedure TGenericStringBuilder.CheckNegative(const AValue: Integer;
const AName: SBString); const AName: SBString);
begin begin
@ -95,7 +95,7 @@ end;
{ These do the actual Appending/Inserting } { These do the actual Appending/Inserting }
procedure TStringBuilder.DoAppend(const S: {$IFDEF SBUNICODE}SBString{$ELSE}RawByteString{$ENDIF}); procedure TGenericStringBuilder.DoAppend(const S: {$IFDEF SBUNICODE}SBString{$ELSE}RawByteString{$ENDIF});
Var Var
L,SL : Integer; L,SL : Integer;
@ -110,7 +110,7 @@ begin
end; end;
end; end;
procedure TStringBuilder.DoAppend(const AValue: TSBCharArray; Idx, aCount: Integer procedure TGenericStringBuilder.DoAppend(const AValue: TSBCharArray; Idx, aCount: Integer
); );
Var Var
@ -123,7 +123,7 @@ begin
Move(AValue[Idx],FData[L],aCount*SizeOf(SBChar)); Move(AValue[Idx],FData[L],aCount*SizeOf(SBChar));
end; end;
procedure TStringBuilder.DoInsert(Index: Integer; const AValue: SBString); procedure TGenericStringBuilder.DoInsert(Index: Integer; const AValue: SBString);
Var Var
ShiftLen,LV : Integer; ShiftLen,LV : Integer;
@ -137,7 +137,7 @@ begin
Move(AValue[1],FData[Index],LV*SizeOf(SBChar)); Move(AValue[1],FData[Index],LV*SizeOf(SBChar));
end; end;
procedure TStringBuilder.DoInsert(Index: Integer; const AValue: TSBCharArray; procedure TGenericStringBuilder.DoInsert(Index: Integer; const AValue: TSBCharArray;
StartIndex, SBCharCount: Integer); StartIndex, SBCharCount: Integer);
Var Var
@ -157,13 +157,13 @@ end;
{ Public routines for appending } { Public routines for appending }
function TStringBuilder.Append(const AValue: UInt64): TStringBuilder; function TGenericStringBuilder.Append(const AValue: UInt64): TGenericStringBuilder;
begin begin
DoAppend(IntToStr(AValue)); DoAppend(IntToStr(AValue));
Result:=self; Result:=self;
end; end;
function TStringBuilder.Append(const AValue: TSBCharArray): TStringBuilder; function TGenericStringBuilder.Append(const AValue: TSBCharArray): TGenericStringBuilder;
var var
I,L: Integer; I,L: Integer;
@ -180,100 +180,100 @@ begin
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const AValue: Single): TStringBuilder; function TGenericStringBuilder.Append(const AValue: Single): TGenericStringBuilder;
begin begin
DoAppend(FloatToStr(AValue)); DoAppend(FloatToStr(AValue));
Result:=self; Result:=self;
end; end;
function TStringBuilder.Append(const AValue: Word): TStringBuilder; function TGenericStringBuilder.Append(const AValue: Word): TGenericStringBuilder;
begin begin
Append(IntToStr(AValue)); Append(IntToStr(AValue));
Result:=self; Result:=self;
end; end;
function TStringBuilder.Append(const AValue: Cardinal): TStringBuilder; function TGenericStringBuilder.Append(const AValue: Cardinal): TGenericStringBuilder;
begin begin
DoAppend(IntToStr(AValue)); DoAppend(IntToStr(AValue));
Result:=self; Result:=self;
end; end;
function TStringBuilder.Append(const AValue: SBChar; RepeatCount: Integer function TGenericStringBuilder.Append(const AValue: SBChar; RepeatCount: Integer
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoAppend(StringOfChar(AValue,RepeatCount)); DoAppend(StringOfChar(AValue,RepeatCount));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const AValue: Shortint): TStringBuilder; function TGenericStringBuilder.Append(const AValue: Shortint): TGenericStringBuilder;
begin begin
DoAppend(IntToStr(AValue)); DoAppend(IntToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const AValue: SBChar): TStringBuilder; function TGenericStringBuilder.Append(const AValue: SBChar): TGenericStringBuilder;
begin begin
DoAppend(AValue); DoAppend(AValue);
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const AValue: Currency): TStringBuilder; function TGenericStringBuilder.Append(const AValue: Currency): TGenericStringBuilder;
begin begin
DoAppend(CurrToStr(AValue)); DoAppend(CurrToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const AValue: Boolean): TStringBuilder; function TGenericStringBuilder.Append(const AValue: Boolean): TGenericStringBuilder;
begin begin
DoAppend(BoolToStr(AValue, True)); DoAppend(BoolToStr(AValue, True));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const AValue: Byte): TStringBuilder; function TGenericStringBuilder.Append(const AValue: Byte): TGenericStringBuilder;
begin begin
DoAppend(IntToStr(AValue)); DoAppend(IntToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const AValue: Double): TStringBuilder; function TGenericStringBuilder.Append(const AValue: Double): TGenericStringBuilder;
begin begin
DoAppend(FloatToStr(AValue)); DoAppend(FloatToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const AValue: Int64): TStringBuilder; function TGenericStringBuilder.Append(const AValue: Int64): TGenericStringBuilder;
begin begin
DoAppend(IntToStr(AValue)); DoAppend(IntToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const AValue: TObject): TStringBuilder; function TGenericStringBuilder.Append(const AValue: TObject): TGenericStringBuilder;
begin begin
DoAppend(AValue.ToString); DoAppend(AValue.ToString);
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const AValue: Smallint): TStringBuilder; function TGenericStringBuilder.Append(const AValue: Smallint): TGenericStringBuilder;
begin begin
DoAppend(IntToStr(AValue)); DoAppend(IntToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const AValue: LongInt): TStringBuilder; function TGenericStringBuilder.Append(const AValue: LongInt): TGenericStringBuilder;
begin begin
DoAppend(IntToStr(AValue)); DoAppend(IntToStr(AValue));
Result:=Self; Result:=Self;
end; end;
Function TStringBuilder.Append(const AValue: TSBCharArray; StartIndex, SBCharCount: Integer): TStringBuilder; Function TGenericStringBuilder.Append(const AValue: TSBCharArray; StartIndex, SBCharCount: Integer): TGenericStringBuilder;
begin begin
DoAppend(AValue,StartIndex,SBCharCount); DoAppend(AValue,StartIndex,SBCharCount);
Result:=Self; Result:=Self;
end; end;
Function TStringBuilder.Append(const AValue: SBString; StartIndex, Count: Integer): TStringBuilder; Function TGenericStringBuilder.Append(const AValue: SBString; StartIndex, Count: Integer): TGenericStringBuilder;
begin begin
CheckRange(StartIndex,Count,System.Length(AValue)); CheckRange(StartIndex,Count,System.Length(AValue));
@ -281,21 +281,21 @@ begin
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const AValue: PSBChar): TStringBuilder; function TGenericStringBuilder.Append(const AValue: PSBChar): TGenericStringBuilder;
begin begin
DoAppend(AnsiString(AValue)); DoAppend(AnsiString(AValue));
Result:=Self; Result:=Self;
end; end;
{$IFDEF SBUNICODE} {$IFDEF SBUNICODE}
function TStringBuilder.Append(const AValue: SBString): TStringBuilder; function TGenericStringBuilder.Append(const AValue: SBString): TGenericStringBuilder;
begin begin
DoAppend(AValue); DoAppend(AValue);
Result:=Self; Result:=Self;
end; end;
{$ENDIF} {$ENDIF}
function TStringBuilder.Append(const AValue: RawByteString): TStringBuilder; function TGenericStringBuilder.Append(const AValue: RawByteString): TGenericStringBuilder;
begin begin
{$IFDEF SBUNICODE} {$IFDEF SBUNICODE}
DoAppend(SBString(AValue)); DoAppend(SBString(AValue));
@ -305,40 +305,40 @@ begin
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.AppendFormat(const Fmt: SBString; function TGenericStringBuilder.AppendFormat(const Fmt: SBString;
const Args: array of const): TStringBuilder; const Args: array of const): TGenericStringBuilder;
begin begin
DoAppend(Format(Fmt,Args)); DoAppend(Format(Fmt,Args));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Append(const Fmt: SBString; function TGenericStringBuilder.Append(const Fmt: SBString;
const Args: array of const): TStringBuilder; const Args: array of const): TGenericStringBuilder;
begin begin
DoAppend(Format(Fmt,Args)); DoAppend(Format(Fmt,Args));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.AppendLine: TStringBuilder; function TGenericStringBuilder.AppendLine: TGenericStringBuilder;
begin begin
DoAppend(sLineBreak); DoAppend(sLineBreak);
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.AppendLine(const AValue: RawByteString): TStringBuilder; function TGenericStringBuilder.AppendLine(const AValue: RawByteString): TGenericStringBuilder;
begin begin
DoAppend(AValue); DoAppend(AValue);
Result:=AppendLine(); Result:=AppendLine();
end; end;
procedure TStringBuilder.Clear; procedure TGenericStringBuilder.Clear;
begin begin
Length:=0; Length:=0;
Capacity:=DefaultCapacity; Capacity:=DefaultCapacity;
end; end;
procedure TStringBuilder.CopyTo(SourceIndex: Integer; procedure TGenericStringBuilder.CopyTo(SourceIndex: Integer;
Var Destination: TSBCharArray; DestinationIndex: Integer; Count: Integer); Var Destination: TSBCharArray; DestinationIndex: Integer; Count: Integer);
begin begin
@ -353,7 +353,7 @@ begin
end; end;
function TStringBuilder.EnsureCapacity(aCapacity: Integer): Integer; function TGenericStringBuilder.EnsureCapacity(aCapacity: Integer): Integer;
begin begin
CheckRange(aCapacity,0,MaxCapacity); CheckRange(aCapacity,0,MaxCapacity);
if Capacity<aCapacity then if Capacity<aCapacity then
@ -361,7 +361,7 @@ begin
Result:=Capacity; Result:=Capacity;
end; end;
function TStringBuilder.Equals(StringBuilder: TStringBuilder): Boolean; function TGenericStringBuilder.Equals(StringBuilder: TGenericStringBuilder): Boolean;
begin begin
Result:=(StringBuilder<>nil); Result:=(StringBuilder<>nil);
if Result then if Result then
@ -370,7 +370,7 @@ begin
and CompareMem(@FData[0],@StringBuilder.FData[0],Length*SizeOf(SBChar)); and CompareMem(@FData[0],@StringBuilder.FData[0],Length*SizeOf(SBChar));
end; end;
procedure TStringBuilder.Grow; procedure TGenericStringBuilder.Grow;
var var
NewCapacity: SizeInt; NewCapacity: SizeInt;
@ -382,101 +382,101 @@ begin
Capacity:=NewCapacity; Capacity:=NewCapacity;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: TObject function TGenericStringBuilder.Insert(Index: Integer; const AValue: TObject
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,AValue.ToString()); DoInsert(Index,AValue.ToString());
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: Int64 function TGenericStringBuilder.Insert(Index: Integer; const AValue: Int64
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,IntToStr(AValue)); DoInsert(Index,IntToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: Single function TGenericStringBuilder.Insert(Index: Integer; const AValue: Single
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,FloatToStr(AValue)); DoInsert(Index,FloatToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: SBString function TGenericStringBuilder.Insert(Index: Integer; const AValue: SBString
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,AValue); DoInsert(Index,AValue);
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: Word function TGenericStringBuilder.Insert(Index: Integer; const AValue: Word
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,IntToStr(AValue)); DoInsert(Index,IntToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: Shortint function TGenericStringBuilder.Insert(Index: Integer; const AValue: Shortint
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index, IntToStr(AValue)); DoInsert(Index, IntToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: Currency function TGenericStringBuilder.Insert(Index: Integer; const AValue: Currency
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,CurrToStr(AValue)); DoInsert(Index,CurrToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: SBChar function TGenericStringBuilder.Insert(Index: Integer; const AValue: SBChar
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,AValue); DoInsert(Index,AValue);
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: Byte function TGenericStringBuilder.Insert(Index: Integer; const AValue: Byte
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,IntToStr(AValue)); DoInsert(Index,IntToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: Double function TGenericStringBuilder.Insert(Index: Integer; const AValue: Double
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,FloatToStr(AValue)); DoInsert(Index,FloatToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: LongInt function TGenericStringBuilder.Insert(Index: Integer; const AValue: LongInt
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,IntToStr(AValue)); DoInsert(Index,IntToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: Smallint function TGenericStringBuilder.Insert(Index: Integer; const AValue: Smallint
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,IntToStr(AValue)); DoInsert(Index,IntToStr(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: Boolean function TGenericStringBuilder.Insert(Index: Integer; const AValue: Boolean
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,BoolToStr(AValue,True)); DoInsert(Index,BoolToStr(AValue,True));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: SBString; function TGenericStringBuilder.Insert(Index: Integer; const AValue: SBString;
const aRepeatCount: Integer): TStringBuilder; const aRepeatCount: Integer): TGenericStringBuilder;
var var
I: Integer; I: Integer;
begin begin
@ -485,43 +485,43 @@ begin
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: TSBCharArray function TGenericStringBuilder.Insert(Index: Integer; const AValue: TSBCharArray
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,AValue,0,System.Length(AValue)); DoInsert(Index,AValue,0,System.Length(AValue));
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: TSBCharArray; function TGenericStringBuilder.Insert(Index: Integer; const AValue: TSBCharArray;
startIndex: Integer; SBCharCount: Integer): TStringBuilder; startIndex: Integer; SBCharCount: Integer): TGenericStringBuilder;
begin begin
DoInsert(Index,AValue,StartIndex,SBCharCount); DoInsert(Index,AValue,StartIndex,SBCharCount);
Result:=Self; Result:=Self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: Cardinal function TGenericStringBuilder.Insert(Index: Integer; const AValue: Cardinal
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,IntToStr(AValue)); DoInsert(Index,IntToStr(AValue));
Result:=self; Result:=self;
end; end;
function TStringBuilder.Insert(Index: Integer; const AValue: UInt64 function TGenericStringBuilder.Insert(Index: Integer; const AValue: UInt64
): TStringBuilder; ): TGenericStringBuilder;
begin begin
DoInsert(Index,IntToStr(AValue)); DoInsert(Index,IntToStr(AValue));
Result:=self; Result:=self;
end; end;
procedure TStringBuilder.Shrink; procedure TGenericStringBuilder.Shrink;
begin begin
if (Capacity div 4)>=Length then if (Capacity div 4)>=Length then
Capacity:=Capacity div 2; Capacity:=Capacity div 2;
end; end;
function TStringBuilder.Remove(StartIndex: Integer; RemLength: Integer function TGenericStringBuilder.Remove(StartIndex: Integer; RemLength: Integer
): TStringBuilder; ): TGenericStringBuilder;
Var Var
MoveIndex : Integer; MoveIndex : Integer;
@ -540,7 +540,7 @@ begin
Result:=Self; Result:=Self;
end; end;
Function TStringBuilder.Replace(const OldValue, NewValue: SBRawString; StartIndex, Count: Integer): TStringBuilder; Function TGenericStringBuilder.Replace(const OldValue, NewValue: SBRawString; StartIndex, Count: Integer): TGenericStringBuilder;
var var
Cur : PSBChar; Cur : PSBChar;
@ -587,8 +587,8 @@ begin
Result:=Self; Result:=Self;
end; end;
Function TStringBuilder.Replace(const OldChar, NewChar: SBChar; StartIndex, Function TGenericStringBuilder.Replace(const OldChar, NewChar: SBChar; StartIndex,
Count: Integer): TStringBuilder; Count: Integer): TGenericStringBuilder;
var var
I : Integer; I : Integer;
Cur : PSBChar; Cur : PSBChar;
@ -609,18 +609,18 @@ begin
Result:=Self; Result:=Self;
end; end;
Function TStringBuilder.Replace(const OldChar, NewChar: SBChar): TStringBuilder; Function TGenericStringBuilder.Replace(const OldChar, NewChar: SBChar): TGenericStringBuilder;
begin begin
Result:=Replace(OldChar,NewChar,0,Length); Result:=Replace(OldChar,NewChar,0,Length);
end; end;
Function TStringBuilder.Replace(const OldValue, NewValue: SBRawString): TStringBuilder; Function TGenericStringBuilder.Replace(const OldValue, NewValue: SBRawString): TGenericStringBuilder;
begin begin
Result:=Replace(OldValue,NewValue,0,Length); Result:=Replace(OldValue,NewValue,0,Length);
end; end;
procedure TStringBuilder.SetCapacity(AValue: Integer); procedure TGenericStringBuilder.SetCapacity(AValue: Integer);
begin begin
if (AValue>FMaxCapacity) then if (AValue>FMaxCapacity) then
Raise ERangeError.CreateFmt(SListCapacityError,[AValue]); Raise ERangeError.CreateFmt(SListCapacityError,[AValue]);
@ -630,12 +630,12 @@ begin
end; end;
function TStringBuilder.ToString: SBString; function TGenericStringBuilder.ToString: SBString;
begin begin
Result:=ToString(0,Length); Result:=ToString(0,Length);
end; end;
function TStringBuilder.ToString(aStartIndex: Integer; aLength: Integer function TGenericStringBuilder.ToString(aStartIndex: Integer; aLength: Integer
): SBString; ): SBString;
begin begin
if (aLength=0) then if (aLength=0) then
@ -650,7 +650,7 @@ begin
end; end;
end; end;
procedure TStringBuilder.DoReplace(Index: Integer; const Old, New: SBString); procedure TGenericStringBuilder.DoReplace(Index: Integer; const Old, New: SBString);
var var
NVLen,OVLen,OLen,Delta,TailStart: Integer; NVLen,OVLen,OLen,Delta,TailStart: Integer;

View File

@ -1,7 +1,7 @@
{ TStringBuilder } { TGenericStringBuilder }
TStringBuilder = class TGenericStringBuilder = class
private private
const const
DefaultCapacity = 64; DefaultCapacity = 64;
@ -36,66 +36,66 @@
Constructor Create(const AValue: SBString; aCapacity: Integer); Constructor Create(const AValue: SBString; aCapacity: Integer);
Constructor Create(const AValue: SBString; StartIndex: Integer; aLength: Integer; aCapacity: Integer); Constructor Create(const AValue: SBString; StartIndex: Integer; aLength: Integer; aCapacity: Integer);
Function Append(const AValue: Boolean): TStringBuilder; Function Append(const AValue: Boolean): TGenericStringBuilder;
Function Append(const AValue: Byte): TStringBuilder; Function Append(const AValue: Byte): TGenericStringBuilder;
Function Append(const AValue: SBChar): TStringBuilder; Function Append(const AValue: SBChar): TGenericStringBuilder;
Function Append(const AValue: Currency): TStringBuilder; Function Append(const AValue: Currency): TGenericStringBuilder;
Function Append(const AValue: Double): TStringBuilder; Function Append(const AValue: Double): TGenericStringBuilder;
Function Append(const AValue: Smallint): TStringBuilder; Function Append(const AValue: Smallint): TGenericStringBuilder;
Function Append(const AValue: LongInt): TStringBuilder; Function Append(const AValue: LongInt): TGenericStringBuilder;
Function Append(const AValue: Int64): TStringBuilder; Function Append(const AValue: Int64): TGenericStringBuilder;
Function Append(const AValue: TObject): TStringBuilder; Function Append(const AValue: TObject): TGenericStringBuilder;
Function Append(const AValue: Shortint): TStringBuilder; Function Append(const AValue: Shortint): TGenericStringBuilder;
Function Append(const AValue: Single): TStringBuilder; Function Append(const AValue: Single): TGenericStringBuilder;
Function Append(const AValue: UInt64): TStringBuilder; Function Append(const AValue: UInt64): TGenericStringBuilder;
Function Append(const AValue: TSBCharArray): TStringBuilder; Function Append(const AValue: TSBCharArray): TGenericStringBuilder;
Function Append(const AValue: Word): TStringBuilder; Function Append(const AValue: Word): TGenericStringBuilder;
Function Append(const AValue: Cardinal): TStringBuilder; Function Append(const AValue: Cardinal): TGenericStringBuilder;
Function Append(const AValue: PSBChar): TStringBuilder; Function Append(const AValue: PSBChar): TGenericStringBuilder;
{$IFDEF SBUNICODE} {$IFDEF SBUNICODE}
// Do not use SBRawstring, we need 2 versions in case of unicode // Do not use SBRawstring, we need 2 versions in case of unicode
Function Append(const AValue: SBString): TStringBuilder; Function Append(const AValue: SBString): TGenericStringBuilder;
{$ENDIF} {$ENDIF}
Function Append(const AValue: RawByteString): TStringBuilder; Function Append(const AValue: RawByteString): TGenericStringBuilder;
Function Append(const AValue: SBChar; RepeatCount: Integer): TStringBuilder; Function Append(const AValue: SBChar; RepeatCount: Integer): TGenericStringBuilder;
Function Append(const AValue: TSBCharArray; StartIndex: Integer; SBCharCount: Integer): TStringBuilder; Function Append(const AValue: TSBCharArray; StartIndex: Integer; SBCharCount: Integer): TGenericStringBuilder;
Function Append(const AValue: SBString; StartIndex: Integer; Count: Integer): TStringBuilder; Function Append(const AValue: SBString; StartIndex: Integer; Count: Integer): TGenericStringBuilder;
Function Append(const Fmt: SBString; const Args: array of const): TStringBuilder; Function Append(const Fmt: SBString; const Args: array of const): TGenericStringBuilder;
Function AppendFormat(const Fmt: SBString; const Args: array of const): TStringBuilder; Function AppendFormat(const Fmt: SBString; const Args: array of const): TGenericStringBuilder;
Function AppendLine: TStringBuilder; Function AppendLine: TGenericStringBuilder;
Function AppendLine(const AValue: RawByteString): TStringBuilder; Function AppendLine(const AValue: RawByteString): TGenericStringBuilder;
Procedure Clear; Procedure Clear;
Procedure CopyTo(SourceIndex: Integer; Var Destination: TSBCharArray; DestinationIndex: Integer; Count: Integer); Procedure CopyTo(SourceIndex: Integer; Var Destination: TSBCharArray; DestinationIndex: Integer; Count: Integer);
Function EnsureCapacity(aCapacity: Integer): Integer; Function EnsureCapacity(aCapacity: Integer): Integer;
Function Equals(StringBuilder: TStringBuilder): Boolean; reintroduce; Function Equals(StringBuilder: TGenericStringBuilder): Boolean; reintroduce;
Function Insert(Index: Integer; const AValue: Boolean): TStringBuilder; Function Insert(Index: Integer; const AValue: Boolean): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: Byte): TStringBuilder; Function Insert(Index: Integer; const AValue: Byte): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: SBChar): TStringBuilder; Function Insert(Index: Integer; const AValue: SBChar): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: Currency): TStringBuilder; Function Insert(Index: Integer; const AValue: Currency): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: Double): TStringBuilder; Function Insert(Index: Integer; const AValue: Double): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: Smallint): TStringBuilder; Function Insert(Index: Integer; const AValue: Smallint): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: LongInt): TStringBuilder; Function Insert(Index: Integer; const AValue: LongInt): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: TSBCharArray): TStringBuilder; Function Insert(Index: Integer; const AValue: TSBCharArray): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: Int64): TStringBuilder; Function Insert(Index: Integer; const AValue: Int64): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: TObject): TStringBuilder; Function Insert(Index: Integer; const AValue: TObject): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: Shortint): TStringBuilder; Function Insert(Index: Integer; const AValue: Shortint): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: Single): TStringBuilder; Function Insert(Index: Integer; const AValue: Single): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: SBString): TStringBuilder; Function Insert(Index: Integer; const AValue: SBString): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: Word): TStringBuilder; Function Insert(Index: Integer; const AValue: Word): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: Cardinal): TStringBuilder; Function Insert(Index: Integer; const AValue: Cardinal): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: UInt64): TStringBuilder; Function Insert(Index: Integer; const AValue: UInt64): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: SBString; const aRepeatCount: Integer): TStringBuilder; Function Insert(Index: Integer; const AValue: SBString; const aRepeatCount: Integer): TGenericStringBuilder;
Function Insert(Index: Integer; const AValue: TSBCharArray; startIndex: Integer; SBCharCount: Integer): TStringBuilder; Function Insert(Index: Integer; const AValue: TSBCharArray; startIndex: Integer; SBCharCount: Integer): TGenericStringBuilder;
Function Remove(StartIndex: Integer; RemLength: Integer): TStringBuilder; Function Remove(StartIndex: Integer; RemLength: Integer): TGenericStringBuilder;
Function Replace(const OldChar, NewChar: SBChar): TStringBuilder; Function Replace(const OldChar, NewChar: SBChar): TGenericStringBuilder;
Function Replace(const OldChar, NewChar: SBChar; StartIndex: Integer; Count: Integer): TStringBuilder; Function Replace(const OldChar, NewChar: SBChar; StartIndex: Integer; Count: Integer): TGenericStringBuilder;
Function Replace(const OldValue, NewValue: SBRawString): TStringBuilder; Function Replace(const OldValue, NewValue: SBRawString): TGenericStringBuilder;
Function Replace(const OldValue, NewValue: SBRawString; StartIndex: Integer; Count: Integer): TStringBuilder; Function Replace(const OldValue, NewValue: SBRawString; StartIndex: Integer; Count: Integer): TGenericStringBuilder;
{$IFDEF SBUNICODE} {$IFDEF SBUNICODE}
Function ToString: SBString; Function ToString: SBString;
{$ELSE} {$ELSE}

View File

@ -2805,7 +2805,7 @@ function sscanf(const s: string; const fmt : string;const Pointers : array of Po
{$define TSBCharArray:=Array of SBChar} {$define TSBCharArray:=Array of SBChar}
{$define PSBChar:=PAnsiChar} {$define PSBChar:=PAnsiChar}
{$define SBRAWString:=RawByteString} {$define SBRAWString:=RawByteString}
{$define TStringBuilder:=TAnsiStringBuilder} {$define TGenericStringBuilder:=TAnsiStringBuilder}
{$i syssb.inc} {$i syssb.inc}
{$undef SBChar} {$undef SBChar}
@ -2813,7 +2813,7 @@ function sscanf(const s: string; const fmt : string;const Pointers : array of Po
{$undef TSBCharArray} {$undef TSBCharArray}
{$undef PSBChar} {$undef PSBChar}
{$undef SBRAWString} {$undef SBRAWString}
{$undef TStringBuilder} {$undef TGenericStringBuilder}
// Unicode version declaration // Unicode version declaration
@ -2823,14 +2823,14 @@ function sscanf(const s: string; const fmt : string;const Pointers : array of Po
{$define TSBCharArray:=Array of SBChar} {$define TSBCharArray:=Array of SBChar}
{$define PSBChar:=PWideChar} {$define PSBChar:=PWideChar}
{$define SBRAWString:=UnicodeString} {$define SBRAWString:=UnicodeString}
{$define TStringBuilder:=TUnicodeStringBuilder} {$define TGenericStringBuilder:=TUnicodeStringBuilder}
{$i syssb.inc} {$i syssb.inc}
{$undef SBChar} {$undef SBChar}
{$undef SBString} {$undef SBString}
{$undef TSBCharArray} {$undef TSBCharArray}
{$undef PSBChar} {$undef PSBChar}
{$undef SBRAWString} {$undef SBRAWString}
{$undef TStringBuilder} {$undef TGenericStringBuilder}
{$undef SBUNICODE} {$undef SBUNICODE}

View File

@ -307,7 +307,7 @@ Type
{$define TSBCharArray:=Array of SBChar} {$define TSBCharArray:=Array of SBChar}
{$define PSBChar:=PAnsiChar} {$define PSBChar:=PAnsiChar}
{$define SBRAWString:=RawByteString} {$define SBRAWString:=RawByteString}
{$define TStringBuilder:=TAnsiStringBuilder} {$define TGenericStringBuilder:=TAnsiStringBuilder}
{$i syssbh.inc} {$i syssbh.inc}
{$undef SBChar} {$undef SBChar}
@ -315,7 +315,7 @@ Type
{$undef TSBCharArray} {$undef TSBCharArray}
{$undef PSBChar} {$undef PSBChar}
{$undef SBRAWString} {$undef SBRAWString}
{$undef TStringBuilder} {$undef TGenericStringBuilder}
// Unicode version implementation // Unicode version implementation
@ -325,14 +325,14 @@ Type
{$define TSBCharArray:=Array of SBChar} {$define TSBCharArray:=Array of SBChar}
{$define PSBChar:=PWideChar} {$define PSBChar:=PWideChar}
{$define SBRAWString:=UnicodeString} {$define SBRAWString:=UnicodeString}
{$define TStringBuilder:=TUnicodeStringBuilder} {$define TGenericStringBuilder:=TUnicodeStringBuilder}
{$i syssbh.inc} {$i syssbh.inc}
{$undef SBChar} {$undef SBChar}
{$undef SBString} {$undef SBString}
{$undef TSBCharArray} {$undef TSBCharArray}
{$undef PSBChar} {$undef PSBChar}
{$undef SBRAWString} {$undef SBRAWString}
{$undef TStringBuilder} {$undef TGenericStringBuilder}
{$undef SBUNICODE} {$undef SBUNICODE}
Type Type