![]() |
AnsiPos vs. AnsiContainsText - was ist schneller?
Hiho,
ich muss gestehen ich bin atm etwas verwirrt: Ich habe bis eben AnsiPos(SubStr, Str) benutzt, um Str (eine String aus einem Datenset einer DB, also verändert sich) nach SubStr (ein fester Str) zu durchsuchen. Als die Funktion, in die ich das eingebaut hab, ein falsches Ergebnis lieferte, wurde ich stutzig: Und zwar hat mir AnsiPos(Wohnanlagenkreis, Wohnanlage) als = 1 zurückgegeben. Das kann doch aber nicht sein oder? Weil "Wohnanlagenkreis" ist doch durch das "-kreis" nicht in "Wohnanlage" enthalten... :gruebel: Na gut, hab ich die SuFu gewälzt und dann das ganze auf AnsiContainsText(Text, SubText) [Achtung: vertauschte Reihenfolge!] umgebaut. Beim Ausführen hab ich allerdings den Eindruck, dass AnsiContainsText etwas langsamer ist. Kann das sein? Achso, was mir bei der Suche in der DP aufgefallen ist, ![]() Zitat:
Kann jemand meine 3 Probleme aufklären? :?: Danke schonmal |
Re: AnsiPos vs. AnsiContainsText - was ist schneller?
AnsiPos soll schon den Byte-Offset des Substrings, also bei nicht MBCS die Position, zurückgeben, daher hat es ja auch den Namen. Das Beispiel in der Hilfe wäre mit Substr z.B. "CD" und Ergbenis 3 aber tatsächlich etwas sinnvoller gewesen.
Sind die Wohn... bei dir auch (halt ohne "'") Variablen? Ansonsten erhalte ich bei mir das richtige Ergebnis. Und bei der Geschwindigkeit hilft ein Blick in den Quelltext:
Delphi-Quellcode:
function AnsiContainsText(const AText, ASubText: string): Boolean;
begin Result := AnsiPos(AnsiUppercase(ASubText), AnsiUppercase(AText)) > 0; end; |
Re: AnsiPos vs. AnsiContainsText - was ist schneller?
AHH jetzt klingelts :idea: ^^
Ich hatte das so verstanden, dass es quasi wie AnsiContainsText arbeitet, nur halt statt true und false 1 und 0 zurückgibt... Hatte mich schon etwas gewundert. So ergibt das mit den Wohn... auch nen Sinn. Das sind übrigens die Werte der Variablen. Gut dann hat sich das mit der Geschwindigkeit auch erledigt, weils ja nicht dasselbe ist. :thumb: Danke dir |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:46 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