Dateizugriff - Bits auslesen?

Anfängerfragen zum Programmieren mit PureBasic.
red-lightning
Beiträge: 3
Registriert: 11.08.2008 22:00

Dateizugriff - Bits auslesen?

Beitrag von red-lightning »

Hallo erstmal,

bevor ich meine Frage stelle, wollte ich noch kurz anmerken, dass ich in Sachen Datein / Dateisystem etc. noch nicht ganz durchblicke und diese Frage evtl. keinen Sinn macht; ich glaube aber, ihr könnt mir trotzdem helfen.

Wie kann ich eigentlich eine Datei "Bit nach Bit" auslesen?
Also bis jetzt öffne ich eine Datei immer und lese dann die einzelnen Bytes mit ReadByte() aus.
Geht das auch irgendwie in der Richtung ReadBit()? Oder kann man das irgendwie umrechnen?

Danke für eure Hilfe,
red-lightning
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Du kannst als kleinste Einheit lediglich ein Byte Speicher adressieren.
Bit-Manipulationen sind einfach möglich, aber Speichern, egal wie oder wo,
geht nur als ganzes Byte.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

Du nimmst dir immer ein Byte und führst passende Manipulationen durch.
Wenn du zB wissen willst, welches Bit an Stelle 13 steht, dann liest du 13/8 = 1 R 5 das 2 Byte ein und schaust dir dort das sechste Bit an, zB so:

(vorsicht, dreckig ;) )

Code: Alles auswählen

procedure readbit(*ptr.l,pos.l)

curbyte.b = peekb(*ptr)
curbyte << (7-pos)
curbyte >> 7

procedurereturn curbyte

endprocedure
wäre jetzt meine Idee, geht sicher noch schöner
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

gnasen hat geschrieben:Du nimmst dir immer ein Byte und führst passende Manipulationen durch.
Wenn du zB wissen willst, welches Bit an Stelle 13 steht
Ich liebe Bytes mit 13 stellen :lol:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

An Bit-Stelle 13 der Datei meine ich natürlich :D
Antworten