Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

Generische string.Split Funktion

  Alt 27. Sep 2018, 13:04
Ich habe eine FUnktion die eine einzige Zeile hat
Result := AString.Split([ADelimiter]); Split liefert aber leider nur Strings zurück.

Wie bekomme ich diese Funktion generisch? Das hier klappt leider an der markierten Stelle nicht
Delphi-Quellcode:
function Explode<T>(const ADelimiter, AString: string): TArray<T>;
var
 LArr: TArray<string>;
 Li: Integer;
begin
 SetLength(Result, 0);
 LArr := AString.Split([ADelimiter]); // erst mal den String splitten und in ein string array speichern

 for Li := 0 to Length(LArr) - 1 do
  begin
   if (TypeInfo(T) = TypeInfo(string)) then
    TArrayHelper.Add<T>(Result, LArr[Li]); ///////// und hier jetzt Result als string array füllen

   // hier unten würde ich dasselbe gerne mit Integer machen
  end;
end;
Add sieht so aus
Delphi-Quellcode:
procedure TArrayHelper.Add<T>;
begin
 SetLength(Values, Length(Values) + 1);
 Values[High(Values)] := Value;
end;
Ich würde gerne eine einzige Explode-Funktion haben die einen String annimt und Strings oder Integer als Array zurückgibt.
  Mit Zitat antworten Zitat