Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#11

Re: TStringlist splitten, neues problem

  Alt 18. Jun 2004, 08:41
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;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat