![]() |
Im Array besonders schnell suchen???
Hallo!
Ich habe für meine Zwecke einen neuen Typ definiert und jeder Variante zusätzlich eine Zahl zugewiesen.
Delphi-Quellcode:
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.
type TMeinTyp = (mtVariante1 = 1,
mtVariante2 = 15, mtVariante3 = 35, ... mtVariante25 = 455); 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? |
Re: Im Array besonders schnell suchen???
Mittlerweile gibt es in der Unit Classes die Klasse TBits, die einen Bitvektor beliebiger Länge darstellt. Ich weiß allerdings nicht, ab welcher Delphi-Version sie vorhanden ist.
|
Re: Im Array besonders schnell suchen???
Du könntest entweder ein Array wie folgt deklarieren:
Array[TMeinTyp] of Boolean; Sozusagen ein selfmade-Set - prüfen kannst du dann schnell, indem du den Boolean-wert checkst ;) |
Re: Im Array besonders schnell suchen???
Danke für die schnelle Antwort!
Und wie hilft mir diese Klasse? |
Re: Im Array besonders schnell suchen???
Zitat:
|
Re: Im Array besonders schnell suchen???
Zitat:
Delphi-Quellcode:
dann kannst du ein Set erstellen, um die Varianten zu speichern und wenn Du deren Ordinalwert benötigst greifst Du auf das Lookuparray zu.
type
TMeinTyp = (mtVariante1, mtVariante2, mtVariante3,... mtVariante25); const cMeinTypOrdinal: array[TMeinTyp] of integer = (1,15,35,...455); Gruss |
Re: Im Array besonders schnell suchen???
[OT]Wenn ich das LookUp-Array sehe, muss ich an den Design-Fehler von QuickReport denken.[/OT]
|
Re: Im Array besonders schnell suchen???
Zitat:
|
Re: Im Array besonders schnell suchen???
Da seine Mengen-Elemente aber Unterschiedliche Werte haben (die er wohl braucht), wird er um ein LockUp-Array auch nicht rum kommen. Da kann er es einfacher lösen, wie thkerkmann vorgeschlagen hat.
|
Re: Im Array besonders schnell suchen???
Diesen Gedankengang verstehe ich nicht ganz.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 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 by Thomas Breitkreuz