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.