AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Variable mit mehreren Werten vergleichen ohne "OR" ?
Thema durchsuchen
Ansicht
Themen-Optionen

Variable mit mehreren Werten vergleichen ohne "OR" ?

Ein Thema von Karstadt · begonnen am 28. Nov 2006 · letzter Beitrag vom 28. Nov 2006
 
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#16

Re: Variable mit mehreren Werten vergleichen ohne "OR&a

  Alt 28. Nov 2006, 10:02
Zitat:
Danke, ein Lob von Hagen ist gleich doppelt so viel wert Mr. Green
Hm naja, sind wir doch mal ehrlich. Dein Vorschlag sieht super sauber aus, ist somit enorm leicht verständlich, und wenn man die Arbeitsweise des Compilers kennt so weiß man auch das der erzeugte Laufzeitcode auch relativ effizient ist im Vergleich zu TStringList oder allen anderen dynamisch zu erzeugenden Listenobjekten. Klar, natürlich nur aus Sicht wie in diesem Beispiel, denn bei zb. 1024 Wörtern in unserer Liste wird das Array[] im Source schon wieder ziemlich unübersichtlich und die meistens nachfolgenden CASE OF Abfrage wird durch den Compiler dann so ineffizient implementiert (als lineare Vergleichsliste mit Sprungmarken). Alleine die CASE OF Abfrage würde also bei 1024 Suchbegriffen im Durchschnitt 512 solcher bedingten Sprünge ausführen und morderne CPUs hassen quasi solche Branches und verlieren dabei enorm an Durchsatz/Performance.

Also: bei kleinen Listen mit > 3 aber oft < 32 Einträgen ist die Array[] Methode die eleganteste und stellt den besten Kompromiss dar. Wenn man jetzt noch die IndexOf() Funktion um drei Features erweiteren würde

1.) Suche mit und ohne Berücksichtigung der Groß/Kleinschreibung
2.) Suche per Binärer Suche
3.) Partielle Suche, dh. der erste Eintrag der die längste Übereinstimmung mit dem Suchmuster hat wird gefunden, statt keinem Resultat.

dann wäre sie ein idealer Beitrag für die CodeLib.

Gruß hagen
  Mit Zitat antworten Zitat
 


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 21:06 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