Einzelnen Beitrag anzeigen

Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Im Array besonders schnell suchen???

  Alt 18. Jun 2009, 20:08
Zitat von romber:
Hallo!

Ich habe für meine Zwecke einen neuen Typ definiert und jeder Variante zusätzlich eine Zahl zugewiesen.

Delphi-Quellcode:
type TMeinTyp = (mtVariante1 = 1,
                         mtVariante2 = 15,
                         mtVariante3 = 35,
                         ...
                         mtVariante25 = 455);
Am liebsten würde ich einen Set erstellen, der dann mehrere Varianten enthält. Ich könnte dann ganz einfach und schnell mit "if in set" prüfen, ob eine bestimmte Variante drin ist. Das problem ist, dass ein Set maximal 256 Elemente besitzen kann. Und obwohl ich nur 25 potenzielle Elemente habe, ist ein Set in meinem Fall nicht möglich, weil Integerwerte einiger Varianten über 256 liegen.

Mit bleibt wohl nichts anderes, als ein Array zu erstellen. Wie kann ich besonders schnell und resourcensparend überprüfen, ob sich ein Wert im Array befindet?
Du solltest dir ein Set und ein Lookup array erstellen.
Delphi-Quellcode:
  type
    TMeinTyp = (mtVariante1, mtVariante2, mtVariante3,... mtVariante25);
  const
    cMeinTypOrdinal: array[TMeinTyp] of integer = (1,15,35,...455);
dann kannst du ein Set erstellen, um die Varianten zu speichern und wenn Du deren Ordinalwert benötigst greifst Du auf das Lookuparray zu.

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat