AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi AnsiPos vs. AnsiContainsText - was ist schneller?
Thema durchsuchen
Ansicht
Themen-Optionen

AnsiPos vs. AnsiContainsText - was ist schneller?

Ein Thema von ToFaceTeKilla · begonnen am 23. Mai 2008 · letzter Beitrag vom 23. Mai 2008
Antwort Antwort
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#1

AnsiPos vs. AnsiContainsText - was ist schneller?

  Alt 23. Mai 2008, 13:45
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...

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, hier wird AnsiPos irgendwie anders benutzt... wurde das von Delphi6 zu 7 geändert? Weil in der OH steht bei mir:
Zitat:
Mit AnsiPos können Sie den Byte-Offset des Parameters Substr im String S ermitteln. Wenn Substr beispielsweise 'AB' und S 'ABCDE' enthält, gibt AnsiPos den Wert 1 zurück. Ist Substr nicht in S enthalten, gibt die Funktion 0 zurück.
Das sieht für mich nicht nach Position-zurückgeben aus...

Kann jemand meine 3 Probleme aufklären?

Danke schonmal
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
Ydobon

Registriert seit: 3. Mär 2006
261 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: AnsiPos vs. AnsiContainsText - was ist schneller?

  Alt 23. Mai 2008, 14:13
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;
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#3

Re: AnsiPos vs. AnsiContainsText - was ist schneller?

  Alt 23. Mai 2008, 14:23
AHH jetzt klingelts ^^

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.

Danke dir
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz