![]() |
Bestimmtes Bit auslesen, bearbeiten, schreiben
Neuer Tag, neue Frage:
Jetzt habe ich ein 16 Bit String welcher in einer Paradox Tabelle steht. Davon lese ich abhängig von einer onclick Aktion paarweise Bits aus. (Bsp. bitmap1.click -> bit 4&5, bitmap2.click -> bit 12&13). Dies habe ich folgend gelöst:
Delphi-Quellcode:
Sicherlich nicht schön aber es geht.
if Bit[4]='1' then
if Bit[5]='1' then [...] else [..] Nun wird durch eine radiobutton Auswahl und buttonok Bestätigung 2 bestimmte Bit geändert, wiederum abhängig von meiner bitmap Auswahl. Änderung wird in eine Tabelle eingetragen. Der buttonok ist immer derselbe, habe jedoch ein feld in welches eingetragen wird, welches bmp (sind ca. 20stck) und somit welches bit ich meine. Wie kann ich nun die korrekten Bits ändern, ohne zig if Abfragen? [edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit] |
Re: Bestimmtes Bit auslesen, bearbeiten, schreiben
Du könntest sogenannte Masken benutzen... Diese prüfen oder setzen mehrere Bits - dies ist bei mehreren Bits günstig - z.B.
const Mask: integer := 128; Dann prüfst du im Code einfach nach, ob da wieder 128 raus kommt... if (Mask And XValue = 128) then... //für's setzen nimmst du Or ansonsten kannst du nur mit if oder case arbeiten... Was anderes weiß ich da auch nicht... Aber bin halt anfänger... Viel Erfolg :thumb: |
Re: Bestimmtes Bit auslesen, bearbeiten, schreiben
Moin!
Ähm, so wie der Threadersteller auf die "Bits" zugreift und einen "16-Bit String" verwendet bin ich der Meinung, dass er einen String mit 16 Zeichen länge hat und mit ASCII Zeichen (0, 1) arbeitet und daher keine echte Bits. Daher: Ich glaube wir müssen da weiter ausholen. Ansonsten frage ich mich auch, warum man eine Bitvariable in einem String speichert anstatt einem ganzzahligen Typen... MfG Muetze1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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