Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Binär speichern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
16.08.2004, 12:20 Uhr
~MaJu
Gast


Hi leute,

mein problemm ist etwas kompliziert! Vollgendes, ich möchte binär speichern, das mein ich wärtlich! Ich will allerdings nicht immer 8-Bit nacheinander speichern, ich will dynamische bit speichern! Der grund dafür ist, der Huffmann-Algorithmus. Wo ich so spdchere das ich nicht in 8 Bit muster speichern muss! Das heist das heufigste zeichen bekommt 1 und das seltenste bekommt dem nach 11111111. Das heist ich fülle nicht mit nullen auf! was auch der trick am Huffmann sein sollte. Nur wie speicher ich so etwas binär????????????

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.08.2004, 12:24 Uhr
pin



void setBit(char *value, int pos)
{
char temp = 0x01;
temp = temp << pos;
*value = *value | temp;
}

Mit dieser Funktion kannst du ein Bit in eine beliebige Pos hineinsetzen hoffe es hilft dir weiter
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.08.2004, 12:30 Uhr
~MaJu
Gast


Ok, ich will das in einer binären datei speichern, und ich würde gerne wissen wie ich diese bits speichern soll ohne das der rechner intern die nullen dranhängt! Das was du da geschrieben hast sieht starg nach arbeitsspeicher aus! Wenn nicht, erklärs mir bitte genau!!
Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.08.2004, 12:39 Uhr
virtual
Sexiest Bit alive
(Operator)


Du kannst keine einzelnen Bits in eine Datei schreiben, das geht nur Byteweise.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
16.08.2004, 12:40 Uhr
pin



void setBit (char *value, int pos)
{
char temo = 0x01; //also 00000001

temp = temp << pos; //also wenn pos 3 ist 00001000

*value = *value | temp; //hier findet eine oder verknüpfung statt damit man den Bit setzten kann
}

Soviel zu meinem construkt.
Kannst mir villeicht ein Beispiel schreiben kann nicht so gut deutsch. Villeicht fällt mir die Frage dann leichter.

Nur so nebenbei wiilst du ein kompresionsProg schreiben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.08.2004, 12:41 Uhr
~MaJu
Gast


Haaa, dann kann ich den Huffmann code ja gernicht verwenden, wie soll den das den gehn, ich versteh c++ nicht mher! Sag mir doch mal wo ich den quell code fürs VC++ 6.0 finde, das letzte hab ich nur für .NET gefunden! Ich brauche mehr informationen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.08.2004, 12:43 Uhr
~MaJu
Gast


nein, ich brauche es für eine codierung, die zu groß ist! Zurzeit hat es 4 fache größe vom original, deswegen will ich den code kombrimieren! (dadurch noch mehr verschlüsseln)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
16.08.2004, 12:50 Uhr
pin



Du kannst ja aber auch byteweise auslesen die 8 Bits bearbeiten (komprimieren oder was auch immer) dann in die Datei diesen Byte schreiben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.08.2004, 12:54 Uhr
~MaJu
Gast


immer noch nicht verstanden!!!
der pc speicher immer durch das system so: 00001100, 00100111, ....
ich will aber so speichern: 1100, 100111, .....
die führenden nullen müssen da weg, sonst is die komprimierung sinnlos, weils keine is!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.08.2004, 12:58 Uhr
pin



Ne ich glaub du verstehst mich net.

1.Byte auslesen
2.Bit verschiebung vornehmen
3.Nächste bits dranhängen (muss auf 1 Byte kommen)
4.Byte schreiben
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: