Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bestimmtes Bit auslesen, bearbeiten, schreiben (https://www.delphipraxis.net/10222-bestimmtes-bit-auslesen-bearbeiten-schreiben.html)

Praktikant 14. Okt 2003 10:41


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:
if Bit[4]='1' then
  if Bit[5]='1' then
    [...]
  else
    [..]
Sicherlich nicht schön aber es geht.


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]

FreewareFire 5. Aug 2004 23:08

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:

Muetze1 6. Aug 2004 07:40

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