Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
14.10.2010 14:53:37 |
gnagflow |
|
|
|
19.10.2010 18:08:55 |
Holger |
|
|
Aw:Aw:Länge eines ID3v2-Tags änder und zurückschre |
20.10.2010 08:31:35 |
gnagflow |
|
|
Von:
gnagflow |
Datum:
20.10.2010 08:31:35 |
Views:
973 |
Rating:
|
Antwort:
|
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.
|
- 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
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- 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 |
|
|
|
19.10.2010 18:08:55 |
Holger |
|
|
Aw:Aw:Länge eines ID3v2-Tags änder und zurückschre |
20.10.2010 08:31:35 |
gnagflow |
|
|