Achso, dachte das geht in allen Delphiversionen...
Hab hier noch die Funktion um einen einzelnen Index zu extrahieren. Hat man zum Beispiel einen String der folgendermaßen aufgebaut ist
Zitat:
Tel,Fax,Name
und will nur die Faxnummer haben, so ruft man die funktion so auf:
Delphi-Quellcode:
var Faxnummer, Gesamt: String;
begin
Gesamt := 'Telefonnummer,Faxnummer,Max Mustermann';
Faxnummer := splitOutIndex(Gesamt,',',1);
end;
Hier die Funktion, wäre supi wenn die noch jemand optimieren könnte, bzw etwas übersichtlicher hinbekommt...
Delphi-Quellcode:
function splitOutIndex(const Source: String; const Delimiter: String; Index: Integer): String;
var Lcount, Lnumber, LSourceLength, LDelLength, LStart, LEnd: Integer;
begin
LCount := 1;
Lnumber := 0;
if Index = 0 then LStart := 1 else LStart := 0;
LEnd := 0;
result := '';
LSourceLength := length(Source);
LDelLength := length(Delimiter);
while (LCount <= LSourceLength) and (LEnd = 0) do
begin
if copy(Source, LCount, LDelLength) = Delimiter then
begin
inc(LNumber);
if LNumber >= Index then
begin
if LStart = 0 then
LStart := LCount + LDelLength
else
begin
LEnd := LCount;
result := copy(Source, LStart, LEnd - LStart);
end;
end;
Lcount := Lcount + LDelLength;
end else inc(LCount);
end;
if (LStart > 0) and (LEnd = 0) then
result := copy(Source, LStart, LSourceLength - LStart + 1);
end;