Einzelnen Beitrag anzeigen

Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Stream/Datei bitweise lesen + schreiben

  Alt 22. Jan 2005, 21:09
Zitat von Sebastian Nintemann:
Zitat:
Also diese Variante würde zwar das Schreiben in eine Datei vereinfachen, aber beim Lesen müsste man dann immer noch Bits shiften, wenn wie im Beispiel nur 3 Bit und dann ein Integer (32 Bit) in der Datei stehen.
Gerade eben nicht Du liest beispielsweise das erste byte der Datei, von der meinetwegen die ersten drei bits Informationen enthalten. Welche bits gesetzt sind kann man leicht über Bitmasken prüfen. Danach liest du ganz normal über die Read Methoden weiter aus dem Stream (beispielsweise 4 byte als Integer). Da muss dann eben nicht geshiftet werden. Du benutzt einfach die entsprechenden Methoden und den Schreib/Lese Offset den dir die Streamklasse (falls du Streams benutzt) zur verfügung stellt.
Ich wollte damit eigentlich sagen, dass deine Vorgehensweise nur für das Schreiben solcher Dateien gut geeignet ist. Wenn du aber ein Byte ausliest, dann wären die ersten drei Bits davon irgendwelche Daten und die restlichen fünf Bits von diesem Byte gehörten schon zum Integer, denn so liegen die Daten ja laut der Beschreibung von stoxx vor . Wenn du also danach 4 Bytes liest, gehören davon nur noch 27 Bits zum Integer und die restlichen fünf Bits können schon wieder zu irgendwelchen anderen Werten gehören. Also müsste man diese Daten auch erstmal "auseinandernehmen", um sie dann nach der "1-Byte-für-1-Bit"-Methode speichern zu können, da man ja sonst offensichtlich durcheinander kommt mit den verscheidenen Daten.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat