AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wert eines Bits im String ermitteln

Ein Thema von gmc616 · begonnen am 8. Sep 2005 · letzter Beitrag vom 8. Sep 2005
Antwort Antwort
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#1

Wert eines Bits im String ermitteln

  Alt 8. Sep 2005, 02:23
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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Wert eines Bits im String ermitteln

  Alt 8. Sep 2005, 06:51
Delphi-Quellcode:
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;
du musst berechnen im wievielten Byte das zu prüfende Bit ist und dann übergibst du dieses Byte entsprechend an die Funktion GetBit
Delphi-Quellcode:
var BitGesetzt: Boolean;
begin
  BitGesetzt := GetBit(Byte(DeinString[ByteIndex]), BitIndexDesBytes0Basierend);
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz