G
freeze schrieb:
Also ich weiß nicht, vielleicht bin ich im moment etwas verwirrt, ab steht im extended header nicht ob Titel usw. da sind?
Nö. Ob Titel etc. vorhanden sind, bekommst du mit, wenn du die Frames liest und der entsprechende Frame halt dabei ist.
freeze schrieb:
Ausserdem funktioniert das mit der Version, so wie es in den Postings schon vorhanden ist nicht richtig, da ich Werte zwischen 0 und 65535? Ich glaube kaum das 65535 eine richtige Version ist
Darüber würde ich mir erstmal keine Gedanken machen. Wichtig ist, dass der grundlegende Algorithmus zum Einlesen des Tags funktioniert, später kannst du dir immer noch Gedanken über solche Feinheiten machen (seitdenn du willst v2.3.0 und v2.4.0 implementieren). Deine Werte können auch dadurch entstehen, dass du zB mp3's einliest, die keinen ID3 Tag haben. Vielleicht solltest du ne Exception werfen, wenn 'ID3' nicht gefunden wird, oder zumindest erstmal ne Nachricht ausgeben. Ausserdem würde ich folgende Zeilen nochmal überarbeiten:
char header[11];
file.read(header, 10);
header[10] = '\0';
Wie schon in einem früheren Post gesagt, du musst dir die eingelesenen Daten als reine Rohdaten vorstellen. Also keine Strings oder ähnliches, dh
char header[10];
file.read(header, 10);
reicht vollkommen aus, obwohl ich die Header Elemente wohl eher noch unsigned machen würde, immerhin spricht die Doku ja von Bytes. Und bei Verwendung von signed können eher mal unerwartete Ergebnisse auftreten, wenn man auf einer solchen Low-Level Datenebene arbeitet.