![]() |
Wert eines Bits im String ermitteln
Hallo DP,
ich muß eine Datei auslesen die im Header verschiedene Einstellungen hat. Diese Einstellungen werden mit Flags festgelegt. In der Doku zu diesem File steht, dass die Flags von Byte x bis Byte y stehen. Weiter steht dort, dass z.B. das Bit 30 ab Position x einen bestimmten Datensatztyp markiert. Meine Frage: Wie kann ich ermitteln ob in meinem String (aus der Datei) ein bestimmtes Bit gesetzt ist oder nicht. Meine Versuche haben entweder alle FALSE oder alle TRUE ergeben. Für ein Stückchen Code wäre ich sehr Dankbar. Gruß gmc |
Re: Wert eines Bits im String ermitteln
Delphi-Quellcode:
du musst berechnen im wievielten Byte das zu prüfende Bit ist und dann übergibst du dieses Byte entsprechend an die Funktion GetBit
type
TBitIndex = Byte; function SetBit(const AByte: Int64; const ANewBitStatus: Boolean; const ABitIndex: TBitIndex): Int64; begin if ANewBitStatus then result := AByte or (1 shl ABitIndex) else result := AByte and not(1 shl ABitIndex); end; function GetBit(const AByte: Int64; const ABitIndex: TBitIndex): Boolean; begin result := AByte = SetBit(AByte, True, ABitIndex); end;
Delphi-Quellcode:
var BitGesetzt: Boolean;
begin BitGesetzt := GetBit(Byte(DeinString[ByteIndex]), BitIndexDesBytes0Basierend); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22: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