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.