Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
|
Diese funktion schneller machen?
29. Okt 2004, 12:42
moin,
ich habe vor langer zeit mal folgende funktion geschrieben, die ich SEHR oft benutze (meistens zum parsen):
Delphi-Quellcode:
function GetTok(str: string; Tok: integer; sep: char): string;
var
index: integer;
begin
result := '';
if (str = '') or (str = sep) or (Tok < 1) or (sep = '') then
exit;
if (pos(sep, str) = 0) and (Tok = 1) then
begin
result := str;
exit;
end;
str := str + sep;
while pos(sep+sep, str) > 0 do
delete(str, pos(sep+sep, str), 1);
if pos(sep, str) = 1 then
delete(str, 1, 1);
index := 1;
while pos(sep, str) > 0 do
begin
if Tok = index then
begin
result := copy(str, 1, pos(sep, str)-1);
exit;
end
else
begin
delete(str, 1, pos(sep, str));
inc(index);
end;
end;
end;
ich rufe sie z.b so auf:
Delphi-Quellcode:
MeinString := 'Dies ist ein string';
s := GetTok(MeinString, 2, ' ');
das ergebnis wäre dann:
Zitat:
ist
nur sieht mir die funktion ziemlich lang aus und frage mich daher ob sie mein programm vielleicht langsam macht und es evtl eine schnellere variante gibt? (natürlich one stringlist...)
Mario MSN: cyanide@ccode.de
|
|
Zitat
|