Thema Datum  Von Nutzer Rating
Antwort
14.10.2010 14:53:37 gnagflow
NotSolved
19.10.2010 18:08:55 Holger
NotSolved
Rot Aw:Aw:Länge eines ID3v2-Tags änder und zurückschre
20.10.2010 08:31:35 gnagflow
NotSolved

Ansicht des Beitrags:
Von:
gnagflow
Datum:
20.10.2010 08:31:35
Views:
972
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Länge eines ID3v2-Tags änder und zurückschre
Hallo Holger,

vielen Dank für deine Lösung. Ich (>60) bin schon Jahr(zehnt)e von Mathe weg und als autodidaktischer VBA-Neuling hätte das alleine nicht geschafft. Der Sinn der Anwendung ist: ich möchte zu jedem meiner mp3-Musiktititel einen ID3v2-Tag "TSOT" mitspeichern, Damit kann ich erreichen dass die Titel in ITUNES wie im Windows-Explorer sortiert werden.

Ich bin erst Ende nächster Woche wieder zuhause und werde dann deine Lösung in meiner Anwendung einsezten. Werde dann berichten - nochmals DANKE!

Holger schrieb am 19.10.2010 18:08:55:

Hallo gnagflow,
wenn ich dein Programm richtig verstehe, setzt du einen vierstelligen String in eine Zahl um, indem du den Asc-Wert der einzelnen Zeichen jeweils mit der Potenz 3, 2, 1 und 0 von 128 multiplizierst. Umgekehrt brauchst du doch nur entsprechend zu teilen. Das kennst du du doch sicherlich von Binärzahlen, nur dass es sich dort um Potenzen von 2 handelt.
ID3length muss vom Typ Variant sein, sonst solltest du verschiedene Variablen an den den beiden Stellen verwenden. Wozu soll das Ganze den gut sein?

d = ID3length
c = d \ 128 ^ 3
E = Chr(c)
d = d - c * 128 ^ 3
c = d \ 128 ^ 2
E = E + Chr(c)
d = d - c * 128 ^ 2
c = d \ 128
E = E + Chr(c)
d = d - c * 128
ID3length = E + Chr(d)


gnagflow schrieb am 14.10.2010 14:53:37:

Mit diesem VBA-Code lese ich meine Musikdateien ein:

' nächste Datei einlesen
Open MP3FileName For Binary As #OpenZeileNeueTitel
MP3FileContent = Space$(LOF(OpenZeileNeueTitel))
Get #OpenZeileNeueTitel, , MP3FileContent

' Version bestimmen
ID3Version = Str$(Asc(Mid$(MP3FileContent, 4, 1))) & "." & Trim$(Str$(Asc(Mid$(MP3FileContent, 5, 1))))

' ID3-Tag posotionieren
ID3Position = InStr(MP3FileContent, "ID3")

' ID3Tag-Länge in VBA-Format konvertieren
ID3Length = &H200000 ID3Length = &H200000 * Asc(Mid$(MP3FileContent, ID3Position + 6, 1)) _
+ &H4000 * Asc(Mid$(MP3FileContent, ID3Position + 7, 1)) _
+ &H80 * Asc(Mid$(MP3FileContent, ID3Position + 8, 1)) _
+ Asc(Mid$(MP3FileContent, ID3Position + 9, 1))

' Länge ändern (z. B.: + 10)
ID3Length = ID3Length + 10

' neue Länge in ID3-Format konvertieren
??????

... und da fehlen mir die nötigen VBA-Kenntnisse. Habe schon einige Ziet im Internet recherchiert aber leider keine Lösung gefunden.

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
14.10.2010 14:53:37 gnagflow
NotSolved
19.10.2010 18:08:55 Holger
NotSolved
Rot Aw:Aw:Länge eines ID3v2-Tags änder und zurückschre
20.10.2010 08:31:35 gnagflow
NotSolved