Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.012 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

Re: Diese funktion schneller machen?

  Alt 29. Okt 2004, 12:00
Hi,
Delphi-Quellcode:
function GetTok(str: string; Tok: integer; sep: char): string;
var
  i, j: integer;
  b: Boolean;
  pos: Integer;
begin
  Result := '';
  if (Sep = '') or (Tok < 1) then
    Exit;
  j := 1;
  b := False;
  pos := 0;
  for i := 1 to length(str) do
  begin
    if str[i] = sep then
    begin
      if not b then
      begin
        Inc(j);
        b := True;
      end;
      if j > Tok then
        Break
      else
        Continue;
    end
    else
      b := False;
    if (pos = 0) and (j = Tok) then
      pos := i;
  end;
  if Pos > 1 then
    Result := Copy(str, pos, i - pos);
end;
ist in jedem meiner Testfälle schneller als deine Funktion.

MfG
Stevie

P.S. Gibt's PosEx erst in Delphi7? Hab hier Delphi6Pro an der Arbeit und find das Teil nicht!?
Edit: Nochmal geändert...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat