Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bitweise schreiben mit Streams? (https://www.delphipraxis.net/43768-bitweise-schreiben-mit-streams.html)

glkgereon 8. Apr 2005 12:45


Bitweise schreiben mit Streams?
 
hi

ich möchte wirklich bitweise in eine Datei schreiben.

geht das irgendwie?

oder muss ich immer 8 schleifendurchläufe warten, und in den anderen 7 das in nen byte-buffer schreiben?

es wäre für mich erheblich einfacher (und imho auch performanter) das bitweise zu machen...wie?

Vjay 8. Apr 2005 12:50

Re: Bitweise schreiben mit Streams?
 
Das Erstere, eine andere Lösung wärem ir nicht bekannt. Ich denke nicht das eine grössere bitweise Operation bei grösseren Datenmengen ohne asm in irgend einer Weise performant ist ^^

Binärbaum 8. Apr 2005 13:08

Re: Bitweise schreiben mit Streams?
 
Die kleinste Einhet, die man in Streams schreiben kann ist ein Byte. D.h. du musst immer erst warten, bis min. 8 Bit zum Schreiben bereitstehen.
Das gleiche gilt auch für das Auslesen.

MfG
Binärbaum

glkgereon 8. Apr 2005 13:52

Re: Bitweise schreiben mit Streams?
 
kann ich denn ohne streams biteise schreiben?

oder kann ich bei einem byte ein bit direkt ohne umwege über 2er-potenzen "ansteuern"?

Luckie 8. Apr 2005 13:53

Re: Bitweise schreiben mit Streams?
 
Was hast du denn vor, dass du bitweise schreiben musst?

glkgereon 8. Apr 2005 14:00

Re: Bitweise schreiben mit Streams?
 
ich hatte ne idee wie man komprimieren könnte (kann aber auch sein dasses das schon gibt...) und dazu will ich halt schön ein bit nachm anderen reinklatschen.

ich will eine zahl (die ich aus der datei erstelle) mit 2 operationen aufschlüsseln, bis ich sie bei 0 hab, und von diesen operationen muss ich mir nur immer die reihenfolge merken...also ein bit...

BenBE 8. Apr 2005 19:42

Re: Bitweise schreiben mit Streams?
 
AFAIK gibt's dafür den TBitStream von Borland. Guck mal in der DOH; müsstest Du Infos zu finden.

glkgereon 8. Apr 2005 20:42

Re: Bitweise schreiben mit Streams?
 
also ich hab Delphi 7, und hab kein TBitStream inner OH :(

wer morgen noch mal ausführlich über google etc. suchen...

aber danke für den tipp

Binärbaum 8. Apr 2005 23:28

Re: Bitweise schreiben mit Streams?
 
Zitat:

Zitat von glkgereon
kann ich denn ohne streams biteise schreiben?

AFAIK geht das auch nicht.

Zitat:

Zitat von glkgereon
oder kann ich bei einem byte ein bit direkt ohne umwege über 2er-potenzen "ansteuern"?

Es wäre möglich, mit Hilfe der Operatoren Delphi-Referenz durchsuchenshl und/oder Delphi-Referenz durchsuchenshr auf bestimmte bits im Byte zuzugreifen:
Delphi-Quellcode:
function GetBitofByte(aByte: Byte; nBit: Byte): Boolean;
begin
  Result:= ((aByte and (1 shl nBit))<>0);
end;
Die Funktion gibt True zurück, wenn das entsprechende Bit von aByte gesetzt ist, ansonsten erhält man False. (Es sei 0<=nBit<=7)

MfG
Binärbaum


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 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