![]() |
bool-array logisch verknüpfen
hi,
ich suche sowas wie and( myBoolArray ), gibt es das? |
Re: bool-array logisch verknüpfen
Schreib bitte mal genauer, was du machen willst.
Spontan einfach mal:
Delphi-Quellcode:
mybool and myboolarray[i]
|
Re: bool-array logisch verknüpfen
ich möchte die Elemente eines BoolArrays logisch (zB. mit and) verknüpfen. und das möglichst ohne eine extra Variable, Schleife oder Funktion zu schreiben/deklarieren. In vielen anderen Sprachen gibt es sowas und ich hoffe, dass auch Delphi so etwas anbietet.
|
Re: bool-array logisch verknüpfen
und wo liegt das problem?
Delphi-Quellcode:
oder mit OR oder mit XOR oder mit ...
boolarray1 := boolarray2 AND boolarray3
|
Re: bool-array logisch verknüpfen
@grenzgaenger: ich glaube er will die Werte des Arrays mit AND verknüpfen und nicht die Arrays selbst. Mir ist für delphi keine Funktion bekannt die das macht. Da die Sprache auch Objectpascal genannt wird glaube ich nicht das eine Funktion für Arrays in Zukunft hinzugefügt wird.
|
Re: bool-array logisch verknüpfen
jetzt ist die frage was man unter array versteht...
:glaskugel: hohl: bool array, array of booleans... = array of bits ... haben wir doch ... :stupid: z.b.
und die kann man doch verknüpfen ... entweder als array oder einzeln, ... wo es dann 'n wenig komplizierter wird... aber meine :glaskugel: ist müde ... und ich geh auch gleich :cat: |
Re: bool-array logisch verknüpfen
hm, mir war nicht klar, dass meine Frage so mehrdeutig war, sorry ... um das nochmal klarzustellen:
Ich möchte die Elemente eines array of boolean logisch verknüpfen, also zB mit and. Anscheinend gibt es keine solche Funktion in Delphi. Danke für eure Hilfe. |
Re: bool-array logisch verknüpfen
Jetzt einfach die Elemente eines Arrays hintereinander weg, oder von zwei gleichlangen Arrays je die Elemente mit selbem Index?
Und ja, in beiden Fällen gibt es keine fertige Funktion, aber es wäre in beiden Fällen im Wesentlichen auch nur ein Zweizeiler. Und sei versichert: Welche Sprache das auch immer von Hause aus mit bringt: Es wird eine Schleife dahinter stecken. Einzig für den zweiten Fall könnte man sich (so lange man max. 32 Elemente hat) ein Verwursten in Integers vorstellen, und die Verknüpfung in einem Schritt machen. Der Aufwand um dahin zu kommen ist, da Delphi Arrays nun mal keine Bitfelder sind, sicherlich größer als da eben mit einer Schleife drüber zu rutschen. |
Re: bool-array logisch verknüpfen
Außerdem käme bei einer AND-Verknüpfung von Booleans sowieso false heraus, sobald auch nur ein Element false ist. Leider weiß ich im Moment keine saubere Lösung, um diesen Umstand performancetechnisch auszunutzen (außer eine Schleife mit break oder sowas).
|
Re: bool-array logisch verknüpfen
Hallo,
wenn es dir nur darum geht, die Implementierung einer UND-Verknüpfung zu vermeiden, dann könntest du die Klasse ![]()
Delphi-Quellcode:
Bei bis zu 256 Elementen käme eventuell noch ein set of Byte in Frage. Damit lassen sich auch andere Verknüpfungen als UND realisieren.
var
Bits : TBits; begin Bits := TBits.Create; Bits.Size := 42; {.. hier kannst du die Bits nach Bedarf setzen oder löschen ..} if (Bits.Size > 0) and (Bits.OpenBit = Bits.Size) then { alle Bits sind gesetzt }; Bits.Free; end; Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 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