Registriert seit: 26. Mai 2004
3.159 Beiträge
|
AW: Text kopieren und gliedern Hilfe!
8. Jun 2011, 14:41
Hatte gerade noch etwas suchen müssen, habe mir aber mal folgende Explode-Methode geschrieben:
Delphi-Quellcode:
function Explode(const AStr: String; const Delimiter: String; const ACount: Integer = -1): TArray<String>;
var
s : String;
p : Integer;
l : Integer;
n : Integer;
LDelimiter : Integer;
begin
s := AStr;
l := 10;
SetLength(Result, l);
n := 0;
LDelimiter := Length(Delimiter);
if (LDelimiter = 0) then
raise EArgumentException.CreateFmt('Length of Delimiter has to be greater then zero (%d).', [LDelimiter]);
repeat
p := Pos(Delimiter, s);
if (p > 0) then
begin
Result[n] := System.Copy(s, 1, p - 1);
System.Delete(s, 1, p + LDelimiter - 1);
Inc(n);
if (n = l) then
begin
Inc(l, 10);
SetLength(Result, l);
end;
if (ACount > 0) and (n = ACount) then
begin
SetLength(Result, n);
Exit(Result);
end;
end;
until (p = 0);
Result[n] := s;
SetLength(Result, n + 1);
end;
Ist aber noch nicht zu 100% getestet.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
|