* Overloads to allow passing strings to Array of Char

This commit is contained in:
michael 2020-04-26 11:56:08 +00:00
parent 42b3e3a87b
commit f3585cf8e9

View File

@ -52,6 +52,7 @@ type
TMonthNames = TMonthNameArray;
TDayNames = array[0..6] of string;
{*****************************************************************************
Exception handling
*****************************************************************************}
@ -725,6 +726,7 @@ Type
Class Function ToNativeInt(const S: string): NativeInt; overload; static; inline;
Class Function ToInteger(const S: string): Integer; overload; static; inline;
Class Function UpperCase(const S: string): string; overload; static; inline;
Class Function ToCharArray(const S : String) : TCharArray; static;
Function CompareTo(const B: string): Integer;
Function Contains(const AValue: string): Boolean;
Function CountChar(const C: Char): SizeInt;
@ -742,8 +744,11 @@ Type
Function IndexOf(AValue: Char; StartIndex: SizeInt; ACount: SizeInt): SizeInt; overload;
Function IndexOf(const AValue: string; StartIndex: SizeInt; ACount: SizeInt): SizeInt; overload;
Function IndexOfUnQuoted(const AValue: string; StartQuote, EndQuote: Char; StartIndex: SizeInt = 0): SizeInt; overload;
Function IndexOfAny(const AnyOf: string): SizeInt; overload;
Function IndexOfAny(const AnyOf: array of Char): SizeInt; overload;
Function IndexOfAny(const AnyOf: String; StartIndex: SizeInt): SizeInt; overload;
Function IndexOfAny(const AnyOf: array of Char; StartIndex: SizeInt): SizeInt; overload;
Function IndexOfAny(const AnyOf: String; StartIndex: SizeInt; ACount: SizeInt): SizeInt; overload;
Function IndexOfAny(const AnyOf: array of Char; StartIndex: SizeInt; ACount: SizeInt): SizeInt; overload;
Function IndexOfAny(const AnyOf: array of String): SizeInt; overload;
Function IndexOfAny(const AnyOf: array of String; StartIndex: SizeInt): SizeInt; overload;
@ -778,18 +783,27 @@ Type
Function Replace(OldChar: Char; NewChar: Char; ReplaceFlags: TReplaceFlags): string; overload;
Function Replace(const OldValue: string; const NewValue: string): string; overload;
Function Replace(const OldValue: string; const NewValue: string; ReplaceFlags: TReplaceFlags): string; overload;
Function Split(const Separators: String): TStringArray; overload;
Function Split(const Separators: array of Char): TStringArray; overload;
Function Split(const Separators: string; ACount: SizeInt): TStringArray; overload;
Function Split(const Separators: array of Char; ACount: SizeInt): TStringArray; overload;
Function Split(const Separators: string; Options: TStringSplitOptions): TStringArray; overload;
Function Split(const Separators: array of Char; Options: TStringSplitOptions): TStringArray; overload;
Function Split(const Separators: string; ACount: SizeInt; Options: TStringSplitOptions): TStringArray; overload;
Function Split(const Separators: array of Char; ACount: SizeInt; Options: TStringSplitOptions): TStringArray; overload;
Function Split(const Separators: array of string): TStringArray; overload;
Function Split(const Separators: array of string; ACount: SizeInt): TStringArray; overload;
Function Split(const Separators: array of string; Options: TStringSplitOptions): TStringArray; overload;
Function Split(const Separators: array of string; ACount: SizeInt; Options: TStringSplitOptions): TStringArray; overload;
Function Split(const Separators: String; AQuote: Char): TStringArray; overload;
Function Split(const Separators: array of Char; AQuote: Char): TStringArray; overload;
Function Split(const Separators: String; AQuoteStart, AQuoteEnd: Char): TStringArray; overload;
Function Split(const Separators: array of Char; AQuoteStart, AQuoteEnd: Char): TStringArray; overload;
Function Split(const Separators: string; AQuoteStart, AQuoteEnd: Char; Options: TStringSplitOptions): TStringArray; overload;
Function Split(const Separators: array of Char; AQuoteStart, AQuoteEnd: Char; Options: TStringSplitOptions): TStringArray; overload;
Function Split(const Separators: string; AQuoteStart, AQuoteEnd: Char; ACount: SizeInt): TStringArray; overload;
Function Split(const Separators: array of Char; AQuoteStart, AQuoteEnd: Char; ACount: SizeInt): TStringArray; overload;
Function Split(const Separators: string; AQuoteStart, AQuoteEnd: Char; ACount: SizeInt; Options: TStringSplitOptions): TStringArray; overload;
Function Split(const Separators: array of Char; AQuoteStart, AQuoteEnd: Char; ACount: SizeInt; Options: TStringSplitOptions): TStringArray; overload;
Function Split(const Separators: array of string; AQuote: Char): TStringArray; overload;
Function Split(const Separators: array of string; AQuoteStart, AQuoteEnd: Char): TStringArray; overload;
@ -5279,8 +5293,7 @@ begin
end;
class function TStringHelper.Format(const AFormat: string;
const args: array of jsValue): string;
class function TStringHelper.Format(const AFormat: string; const args: array of JSValue): string;
begin
Result:=Sysutils.Format(AFormat,Args);
end;
@ -5298,7 +5311,7 @@ begin
end;
Class Function TStringHelper.Join(const Separator: string; const Values: array of JSValue): string; overload;
class function TStringHelper.Join(const Separator: string; const Values: array of JSValue): string;
begin
Result:=TJSArray(Values).Join(Separator);
@ -5393,6 +5406,17 @@ begin
Result:=sysutils.Uppercase(S);
end;
class function TStringHelper.ToCharArray(const S: String): TCharArray;
Var
I,Len: integer;
begin
Len:=System.Length(S);
SetLength(Result,Len);
For I:=1 to Len do
Result[I-1]:=S[I];
end;
function TStringHelper.CompareTo(const B: string): Integer;
begin
@ -5500,7 +5524,7 @@ begin
end;
function TStringHelper.Format(const args: array of JSValue): string;
function TStringHelper.Format(const args: array of jsValue): string;
begin
Result:=Sysutils.Format(Self,Args);
@ -5641,12 +5665,22 @@ begin
end;
end;
function TStringHelper.IndexOfAny(const AnyOf: string): SizeInt;
begin
Result:=IndexOfAny(AnyOf.ToCharArray);
end;
function TStringHelper.IndexOfAny(const AnyOf: array of Char): SizeInt;
begin
Result:=IndexOfAny(AnyOf,0,Length);
end;
function TStringHelper.IndexOfAny(const AnyOf: String; StartIndex: SizeInt): SizeInt;
begin
Result:=IndexOfAny(AnyOf.ToCharArray,StartIndex);
end;
function TStringHelper.IndexOfAny(const AnyOf: array of Char;
StartIndex: SizeInt): SizeInt;
@ -5654,6 +5688,10 @@ begin
Result:=IndexOfAny(AnyOf,StartIndex,Length);
end;
function TStringHelper.IndexOfAny(const AnyOf: String; StartIndex: SizeInt; ACount: SizeInt): SizeInt;
begin
Result:=IndexOfAny(AnyOf.ToCharArray,StartIndex,aCount);
end;
function TStringHelper.IndexOfAny(const AnyOf: array of Char;
StartIndex: SizeInt; ACount: SizeInt): SizeInt;
@ -5996,11 +6034,23 @@ begin
end;
function TStringHelper.Split(const Separators: String): TStringArray;
begin
Result:=Split(Separators.ToCharArray);
end;
function TStringHelper.Split(const Separators: array of Char): TStringArray;
begin
Result:=Split(Separators,#0,#0,Length+1,TStringSplitOptions.None);
end;
function TStringHelper.Split(const Separators: string; ACount: SizeInt): TStringArray;
begin
Result:=Split(Separators.ToCharArray,aCount);
end;
function TStringHelper.Split(const Separators: array of Char; ACount: SizeInt
): TStringArray;
@ -6008,6 +6058,11 @@ begin
Result:=Split(Separators,#0,#0,ACount,TStringSplitOptions.None);
end;
function TStringHelper.Split(const Separators: string; Options: TStringSplitOptions): TStringArray;
begin
Result:=Split(Separators.ToCharArray,Options);
end;
function TStringHelper.Split(const Separators: array of Char;
Options: TStringSplitOptions): TStringArray;
@ -6015,6 +6070,11 @@ begin
Result:=Split(Separators,Length+1,Options);
end;
function TStringHelper.Split(const Separators: string; ACount: SizeInt; Options: TStringSplitOptions): TStringArray;
begin
Result:=Split(Separators.ToCharArray,aCount,Options);
end;
function TStringHelper.Split(const Separators: array of Char; ACount: SizeInt;
Options: TStringSplitOptions): TStringArray;
@ -6049,6 +6109,11 @@ begin
Result:=Split(Separators,#0,#0,ACount,Options);
end;
function TStringHelper.Split(const Separators: String; AQuote: Char): TStringArray;
begin
Result:=Split(Separators.ToCharArray,aQuote);
end;
function TStringHelper.Split(const Separators: array of Char; AQuote: Char
): TStringArray;
@ -6056,6 +6121,11 @@ begin
Result:=Split(Separators,AQuote,AQuote);
end;
function TStringHelper.Split(const Separators: String; AQuoteStart, AQuoteEnd: Char): TStringArray;
begin
Result:=Split(Separators.ToCharArray,aQuoteStart,aQuoteEnd);
end;
function TStringHelper.Split(const Separators: array of Char; AQuoteStart,
AQuoteEnd: Char): TStringArray;
@ -6063,6 +6133,11 @@ begin
Result:=Split(Separators,AQuoteStart,AQuoteEnd,TStringSplitOptions.None);
end;
function TStringHelper.Split(const Separators: string; AQuoteStart, AQuoteEnd: Char; Options: TStringSplitOptions): TStringArray;
begin
Result:=Split(Separators.ToCharArray,aQuoteStart,aQuoteEnd,Options);
end;
function TStringHelper.Split(const Separators: array of Char; AQuoteStart,
AQuoteEnd: Char; Options: TStringSplitOptions): TStringArray;
@ -6070,6 +6145,11 @@ begin
Result:=Split(Separators,AQuoteStart,AQuoteEnd,Length+1,Options);
end;
function TStringHelper.Split(const Separators: string; AQuoteStart, AQuoteEnd: Char; ACount: SizeInt): TStringArray;
begin
Result:=Split(Separators.ToCharArray,aQuoteStart,aQuoteEnd,aCount);
end;
function TStringHelper.Split(const Separators: array of Char; AQuoteStart,
AQuoteEnd: Char; ACount: SizeInt): TStringArray;
@ -6077,6 +6157,12 @@ begin
Result:=Split(Separators,AQuoteStart,AQuoteEnd,ACount,TStringSplitOptions.None);
end;
function TStringHelper.Split(const Separators: string; AQuoteStart, AQuoteEnd: Char; ACount: SizeInt; Options: TStringSplitOptions
): TStringArray;
begin
Result:=Split(Separators.ToCharArray,aQuoteStart,aQuoteEnd,aCount,Options);
end;
function TStringHelper.Split(const Separators: array of Char; AQuoteStart,
AQuoteEnd: Char; ACount: SizeInt; Options: TStringSplitOptions): TStringArray;
@ -6110,7 +6196,7 @@ Var
begin
// S:=Self;
S:=Self;
SetLength(Result,BlockSize);
Len:=0;
LastSep:=0;
@ -6189,8 +6275,8 @@ Var
else
// MVC todo:
Result:=-1; // S.IndexOfAny(Separators,StartIndex,Length,Match);
end;
Procedure MaybeGrow(Curlen : SizeInt);
begin
@ -6203,7 +6289,6 @@ Var
T : String;
begin
S:=Self;
SetLength(Result,BlockSize);
Len:=0;
@ -6289,7 +6374,7 @@ begin
end;
function TStringHelper.ToNativeint: Nativeint;
function TStringHelper.ToNativeInt: NativeInt;
begin
Result:=StrToNativeInt(Self);
end;