Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: Text kopieren und gliedern Hilfe!

  Alt 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)
  Mit Zitat antworten Zitat