function TStringHelper.Split(const Separator: array of string; Count: Integer; Options: TStringSplitOptions): TArray<string>; var P: Integer; Total: Integer; Index: Integer; S, ToSplit: string; begin Total := 0; ToSplit := Self; P := ToSplit.IndexOfAny(Separator, Index); while (P >= 0) and (Total < Count) do begin S := ToSplit.Substring(0, P); if (S <> Empty) or ((S = Empty) and (Options <> ExcludeEmpty)) then begin Inc(Total); SetLength(Result, Total); Result[Total - 1] := S; end; ToSplit := ToSplit.Substring(P + Separator[Index].Length); P := ToSplit.IndexOfAny(Separator, Index); end;