datei auslesen
-
hi,
und zwar eine audiodatei (im au-Formatm, aber das sollte egal sein).
da ich ziemlicher noob bin, wärs nicht schlecht, wenn ihr das einfach erklärt.ich will also eine audiodatei auslesen,
dabei brauche ich dann den header und den datenteil.
mein problem ist dabei eigentlich das hexadezimale format der file...danke für eure hilfe...
-
Ich vermute jetzt mal, dass du mit hexadezimalen Format meinst, dass es sich bei der Datei um eine Binärdatei handelt.
Das Handling ist eigentlich relativ leicht. Am besten machst du dir erstmal zwei Strukturen. Eine für den Headerteil und eine für den Datenteil. Wofür die gedacht sind, kannst du dir sicher schon mal denken ;).
Nun zum eigentlichen Auslesen. Hierfür brauchst du nur 3 Funktionen:
fopen() zum Öffnen der Datei
fread() zum Lesen der Datei
fclose() zum Schließen der DateiBeim Öffnen der Datei musst du drauf achten, dass du die Datei auch binär öffnest
... FILE *fp; ... fp = fopen("musik.au", "rb"); ...
Eine Erklärung der Parameter findest du hier (auch für die anderen Funktionen ;)): http://www.cplusplus.com/ref/cstdio/
Nach dem Öffnen kannst du von der Datei lesen. Normalerweise erstmal den Headerteil
struct headerdaten head; ... if(fp) //Konnte die Datei auch geöffnet werden { //Headerdaten lesen fread(&head, sizeof(struct headerdaten), 1, fp); ...
Die Datenteile musst du dann entweder in einer Schleife abhandeln oder kannst sie auf einmal lesen (wenn die Anzahl der Datenteile im Header steht z. B.; Dafür ist auch der Parameter count bei fread() gedacht ;)).
Zum Schluss musst du die Datei wieder schließen (natürlich nur, wenn du sie auch öffnen konntest ;))
... if(fp) { ... fclose(fp); } ...
Ich hoffe ich konnte helfen.
-
hi,
vielen dank für die superschnelle antwort und die ausführliche beschreibung.
bin begeistert.