Einzelnen Beitrag anzeigen

Benutzerbild von Amnon82
Amnon82

Registriert seit: 5. Jan 2005
186 Beiträge
 
FreePascal / Lazarus
 
#15

Re: Bit Operations (Bit in HEX)

  Alt 1. Mai 2006, 22:59
@marabu: Dann müsste ich es ja total anders auslesen.

Einen den ich kenne hat folgendes geschrieben:

Zitat von Garfield:
Zitat von Amnon82:
Der Leerzeichencode hat eh noch einen Bug, da ich erst ab der Zeile Stream_Type= anfangen zu Suchen müsste.
Da könnte man die Schleife mit 4 (= Zeile 5) beginnen lassen. Vorausgesetzt, die Liste der Dateinamen wird ab einer bestimmten Länge nicht auf mehrere Zeilen verteilt.

Zitat von Amnon82:
Das Problem ist noch nicht ganz gelöst. Ich komm mit der Bit-Auslesung nicht klar.
Sollte doch nicht so schwer sein.

Zitat von jfheins:
Delphi-Quellcode:
if (value and $00100000) <> 0 then
// Bit gesetzt
Das ist natürlich falsch, weil $ einer hexadezimalen und keiner dualen Zahl vorangestellt wird. Damit sind es nicht 8 Bit sondern 8 Byte. $00100000 müsste 1.048.576 sein. Das sechste Bit ist 32 bzw $20.

$20 ist vom Typ Integer. Da Du Strings hast, muss konvertiert werden. Aus dem String musst Du die beiden Zeichen, welche Du auswerten willst - zum Beispiel 'B0' - extrahieren. Dann kannst Du es so auswerten:

Delphi-Quellcode:
...
var
  Wert : String;
  Zahl : Byte; // $00 bis $FF
...
begin
  ...
  Wert := 'B0';

  Zahl := StrToInt ('$' + Wert);

  if Zahl AND $20 > 0
  then
    { Bit 6 gesetzt }
  else
    { Bit 6 nicht gesetzt };
  ...
Die anderen Bits lassen sich entsprechend auswerten.
Ich werd mir mal was ausdenken ...
  Mit Zitat antworten Zitat