.WAV Datei Datenblock auslesen
-
Hallo.
Ich beobachte das Forum schon seit längerem und nun habe ich auch einmal eine Frage.Wir arbeiten derzeit in der Schule an einem Projekt, mein Part dabei ist, dass ich aus einer .WAV-Datei alle Daten auslesen soll und diese .WAV-Datei später in eine .AU-Datei umwandeln soll.
Mittlerweile bin ich beim Auslesen des Datenchunks angekommen, komme aber hier auch leider nicht weiter.
Ich habe die Länge des Datenchunks ausgelesen und dann ein dynamisches Array der Größe angelegt.
Wenn ich nun die Daten auslesen will, dann spuckt er mir in meiner Listbox nur Einsen (1) aus, ganz viele untereinander, das sollte aber meines Wissens genau nicht der Fall sein.
Ich habe viel überlegt und auch verschiedene .WAV-Dateien ausprobiert, immer dassselbe, keine Fehlermeldung, es werden halt nur Einsen geladen.Hier der Code des wichtigen teils:
// === Länge des Datenblocks === auslesen (Byte 40-43) int dblock ; Datei.read((char*)&dblock, sizeof(dblock)); MemoAusgabe->Lines->Add("Länge Datenblock " + IntToStr(dblock)) ; // ======== DATEN AUSLESEN ========= // === Sampe Data === auslesen (Byte 44) unsigned char* data; data = new unsigned char[dblock]; for(int i = 0; i < dblock; i++) { Datei.read((char*)&data[i], sizeof(unsigned char)); ListBox1->Items->Add(IntToStr(data)) ; }Meine Frage ist nun:
Mache ich etwas falsch?
Warum spuckt er nur einsen aus?Ich wäre sehr dankbar, wenn mir jemand helfen könnte, bis dann...
-
du fügst ja auch immer nur dasselbe element in die listbox ein.
-
Hallo, da bin ich wieder.
Ich inkrementiere i, sodass er eigentlich immer ein Byte weiterspringen sollte (oder ich habe grad total den Denkfehler drin).
Deßhalb verstehe ich das net, was du damit meinst, dass ich immer dassselbe Element lade..

-
ListBox1->Items->Add(IntToStr(data[i])); // das entsprechende Zeichen an Stelle i anzeigen
-
Ach wie dumm von mir... *schäm*

Vielen vielen Dank
