Datei binär einlesen

Bastih84

Mitglied
Ich suche eine Möglichkeit eine Datei binär einzulesen unter c bzw. unter c++. Mein Ziel ist es einen Digitalen Datenstrom (DVB-T) binär einzulesen und auszuwerten, Projektarbeit an der Fachhochschule.
 
Hab da mal einen Ansatz, allerdings liest er nur Nullen ein, hat einer eine Idee, wo der Fehler liegt


#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <fstream.h>




main ()
{


ifstream strom;

int ch;

strom.open("c:\\zdf.ts", ios::binary);


if (strom.bad())
{
cout << "Kann Datei nicht öffnen" << endl;

}
for(int i=0;i<600;i++)
{
strom >> ch;
cout << ch;
}

cout << endl;

return 0;

}
 
moin


Statt ios::binary nimm mal ios_base::binary

Und wenn du es binär machen willst kannst du nciht mehr strom >> ch; schreiben.
Du musst dann strom.read(....) und strom.write(....) verwenden.


mfg
umbrasaxum
 
wenn ich ios_base mache, mekkert er dass das keine Klasse oder Namespace wäre, was muss ich machen, muss ganz erlich gestehen, dass ich von Klassen keine große Ahnung habe, habe bis vor kurzen nur mit C gearbeitet
 
Fuer deine Aufgabe ist vielleicht sogar c die elegantere Loesung. Generell kommt es darauf an ob du ios::binary oder ios_base::binary verwendest, welchen Kompiler du verwendest. Da hier der Standard mal geaendert wurde ...
 
moin


Aha das ist also der Unterschied zwischen ios::binary und ios_base::binary.

Aber zum Thema.
Wie ist die zdf.ts denn Aufgebaut? Wofür ist die Datei da?
Ich gehe mal davon aus das du sie nicht richtig im Editor betrachten kannst.


mfg
umbrasaxum
 
Ich kann das Teil im Editor betrachten, ist aber leider nur wirres Zeug, mein Ziel ist es, diese Datei (Ein DVB-T Strom) in eine Folge von 0en und 1en zu zerlegen, also richtig binär auslesen
 
moin


Also:
Liess z.B. immer 1Byte große Stücke ein, wandle das in eine Zahl um (zwischen 0 und 255)und errechne daraus den Binärcode den du in einem String speicherst, der dann immer 8 Stellig sein sollte (musst dann vielleicht vorne noch ein zwei oder mehr Nullen dran packen.


mfg
umbrasaxum
 
Zurück