![]() |
Re: Diese funktion schneller machen?
Delphi-Quellcode:
ungetestet. schau mal wie schnell die is...
var t_list: TStringList;
begin result := ''; t_list := TStringList.Create; try t_list.Delimiter = sep; t_list.Text := Text; result := t_list[index]; finally FreeAndNil(t_list); end; end; // Edit: VERDAMMT! wer lesen kann is klar im vorteil... :/ Ignoriert diesen Post einfach... |
Re: Diese funktion schneller machen?
Moin,
ich hab bei Tests festgestellt, dass eure Funktionen etwas von der ursprünglichen abweichen, was das Erkennen des richtigen Teilstrings angeht. Die ursprüngliche liefert bei einem Sep = ' ' den ersten String bis zu einem Leerzeichen zurück, wenn man Index = 1 angibt, aber eure erst den String nach dem ersten Leerzeichen! |
Re: Diese funktion schneller machen?
Jo, das ist richtig, und ich finde es auch logischer. Viele Indizes, sei es Arrays[], TList, TStrings usw. gehen von 0 bis Count -1, man arbeitet also viel öfters 0-basiert als 1-basiert. Das erste Element sollte den Index 0 haben. Du kannst das aber sehr einfach ändern, indem du als erstes in der Funktion Dec(Index); aufrufst.
Gruß Hagen |
Re: Diese funktion schneller machen?
Zitat:
|
Re: Diese funktion schneller machen?
Im Source der Funktion habe ich ein Stückchen auskommentiert. Lies dazu mal den Kommentar, der beantwortet exakt diese Frage. Die normale Funktion betrachtet jeden einzelnen Separator als Separator für einen Teilsting. Zb. bei einem String wie "rot,grün,gelb,,blau" wäre es logisch das der String zwischen ",," eben auch gezählt wird und einen eigenen Index besitzt. Nun, die Standardvorgehensweise meiner Funktion ist jeden Sepeartor zu zählen.
Anderst du meine Funktion aber so ab das das asukommentierte aktiv ist so arbeitet die Funktion so wie die es dir wünscht. D.h. die beiden ",," würde als 1 Separator gezählt. Gruß Hagen |
Re: Diese funktion schneller machen?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz