Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi set of ??? (welchen detentyp) (https://www.delphipraxis.net/86753-set-welchen-detentyp.html)

Mr. Pink 19. Feb 2007 10:31


set of ??? (welchen detentyp)
 
hallo,
ich hab mal ne frage zu den mengen: man kann ja nur kleine zahlen in mengen speichern (0..255), ich muss aber zahlen <=365 speichern. dies scheint nicht zu gehen. da hab ich mir überlegt 2 mengen zu bilden, in die erste kommen ganz normal die zahlen bis 200 und in die 2 die anderen (größeren), allerdings durch 2 geteilt, so dass die beschränkung eingehalten wird - beim auslesen, werden die dann wieder mit 2 multpliziert - , nur kommen bei ungeraden zahlen nachkommastellen raus. kann man da irgendwie was machen, z.b. einen real-ähnlichen datentyp verwenden? ich hab da leider nciht so die ahnung. oder hat sonst wer ne andere idee, wie ich mein problem durch die mengenbeschränkung lösen kann? - mit möglichst wenig aufwand ;)

danke schon mal an alle die sich hiermit beschäftigen, mr pink

Corpsman 19. Feb 2007 10:41

Re: set of ??? (welchen detentyp)
 
Lol

wer schreibt dir den for die * operation zu nehmen

Mach doch die 2. Menge mit +

dann brauchst du nur + 200 und - 200 machen.

Das geht viel einfacher.

Sidorion 19. Feb 2007 10:44

Re: set of ??? (welchen detentyp)
 
Nur zur Anregung (den Code kann ich nicht posten, da kommerziell): Ich habe mal eine Klasse TSuperSet programmiert, da wurden die Einträge in ein Array of Byte gespeichert.
Sprich: je 8 Members des Sets bildeten eine Gruppe, wobei BitGesetzt heisst: Index der Gruppe*8 + Offset Member ist gesetzt. Damit kannst Du unendlich große Sets produzieren. Allerdings musst Du noch irgendwie codieren, wieviele Bits des letzten Oktetts benutzt werden. Dieses kannst Du z.B.: in das nullte Byte des Arrays speichern.

Mr. Pink 19. Feb 2007 10:51

Re: set of ??? (welchen detentyp)
 
:wall: :wall: :wall: mann, manchmal sieht man echt die einfachsten sachen nicht, danke corpsman!
hab erst einmal was mit mengen gemacht und da hate ich nur positive zahlen, vlt lags daran, dass ich nicht draufgekommen bin :?:

@sidorion: das ist auch ne gute idee, aber ich denke ich nehme lieber das von corpsman, weil weniger arbeit :mrgreen: , das reicht auch für meine zwecke vollkommen aus denke ich, aber danke für die idee, werds vllt mal brauchen ;)

mr. pink

shmia 19. Feb 2007 11:01

Re: set of ??? (welchen detentyp)
 
GRUNDSÄTZLICH können Mengen in Delphi maximal 256 Elemente enthalten!
Ein Ausweg wäre, die Klasse TBits zu benützen. Damit ist die Anzahl der Elemente nur durch den Speicher beschränkt.
Allerdings haben die Elemente dann keine Namen, sondern nur einen Index.
Auch die Operationen Schnittmenge und Vereinigung muss man selbst programmieren; so schwer ist das aber nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:09 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