![]() |
Bitabfrage aus Hexstring
Hallo,
Ich habe da ein kleinen Problem. Ich versuche mal die Sache zu beschreiben. Ich habe ein String das eine Hex Zahl ist So ein Hex String sieht dann z.B. so aus 01040. Dieser Hex String wird durch Setzen von Bits/Flags erzeugt. Die Flags die sehen so aus 0001, 0002, 0004, 0008, 0010, 0020, usw Nun muss ich feststellen ob in dem Hex String z.B. 0010 gesetzt wurde oder nicht. Wie stelle ich das an ? Thx schon mal für die Hilfe |
Re: Bitabfrage aus Hexstring
Moin!
Einfach ausmaskieren...
Code:
MfG
If ( Wert And $0020 ) = $0020 Then
// gesetzt Else // nicht gesetzt Muetze1 |
Re: Bitabfrage aus Hexstring
hmm...ok ich habe es so gemacht
Code:
Delphi meint dann immer nur "Inkompatible Typen: 'String' und 'Integer'"
IF (StrToHex(Liste.Cells[5,Liste.RowCount-2]) AND $02000) = $02000 THEN
Label10.Caption := 'Gesetzt' ELSE Label10.Caption := 'Nicht Gesetzt'; ? |
Re: Bitabfrage aus Hexstring
Delphi-Quellcode:
oder
IF ((StrToHex(Liste.Cells[5,Liste.RowCount-2])) AND $02000) = $02000 THEN
Label10.Caption := 'Gesetzt' ELSE Label10.Caption := 'Nicht Gesetzt';
Delphi-Quellcode:
IF (StrToHex(Liste.Cells[5,Liste.RowCount-2])) AND $02000 = $02000 THEN
Label10.Caption := 'Gesetzt' ELSE Label10.Caption := 'Nicht Gesetzt'; |
Re: Bitabfrage aus Hexstring
Moin!
Man muss die Werte nicht in "hex" umrechnen - die hexadezimale Schreibweise ist... naja, nur eine Schreibweise. Daher:
Delphi-Quellcode:
Ach ja, nochwas: wenn in der Zelle wirklich nur 00A0 z.B. drinne steht als String, dann muss man es so machen, weil sonst erkennt StrToInt() den String nicht als Hexwert sondern als Wert in dezimaler Schreibweise...
IF ((StrToInt(Liste.Cells[5,Liste.RowCount-2])) AND $02000) = $02000 THEN
Label10.Caption := 'Gesetzt' ELSE Label10.Caption := 'Nicht Gesetzt';
Delphi-Quellcode:
MfG
IF ((StrToInt('$' + Liste.Cells[5,Liste.RowCount-2])) AND $02000) = $02000 THEN
Label10.Caption := 'Gesetzt' ELSE Label10.Caption := 'Nicht Gesetzt'; Muetze1 |
Re: Bitabfrage aus Hexstring
Prima so geht....ich danke euch.
|
Re: Bitabfrage aus Hexstring
Noch eine Frage ^^
Wie kann ich in dem Hex String Flags/Bits setzte und entfernen? thx |
Re: Bitabfrage aus Hexstring
Moin!
Eigentlich habe ich hier so gesehen, neue Frage, neuer Thread... Grundsätzlich das Abfragen mit der logischen AND Verknüpfung hast du ja nun. Setzen von Bits mit einer OR Verknüpfung (WertNeu := WertAlt Or $0020) und löschen mit einer AND Verknüpfung von logisch invertierten Wert (WertNeu := WertAlt And (Not $0020)). MfG Muetze1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 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