Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1364to1368
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten in mp3 ändern

Daten in mp3 ändern
09.06.2014 14:20:32
Fred

Hallo miteinander,
es gelingt mir die Tags von mp3-Dateien auszulesen. Nun möchte ich die Titel der Songs in der mp3-Datei ändern.
Ich suche eine einfache Lösung ohne DLL's, ohne hunderte Zeilen von Code,... und habe das Gefühl recht nah dran zu sein. Nach erfolgloser Suche im WWW und hier wende ich mich an Euch:
In Tabelle1 steht dabei in

  • Spalte A der komplette Pfad inkl. Dateiname der mp3-Datei,
  • Spalte B der neue Titel.
  • In die folgenden Spalten lese ich mit dem Macro unten ein paar Tags aus.

  • Ich kann auch bereits den Titel ändern mit folgendem Code aber es zerlegt andere Tags.
    Wie muss ich was bei "Put #1,,.NewSongTitle" ändern?
    Danke für sachdienliche Hinweise,
    Fred
    PS. Hier mein Code:
    Private Type TagInfo
    Tag As String * 3
    Songname As String * 30
    artist As String * 30
    album As String * 30
    year As String * 4
    comment As String * 30
    genre As String * 1
    End Type
    Dim FileName As String
    Dim CurrentTag As TagInfo
    Sub Command1_Click()
    StartRow = 3
    For i = 1 To 1
    FileName = Worksheets("Tabelle1").Cells(StartRow + i, 1).Value
    If FileName <> "" Then
    Open FileName For Binary As #1
    With CurrentTag
    Get #1, FileLen(FileName) - 127, .Tag
    Get #1, , .Songname
    Get #1, , .artist
    Get #1, , .album
    Get #1, , .year
    Get #1, , .comment
    Get #1, , .genre
    txtTitle = RTrim(.Songname)
    txtArtist = RTrim(.artist)
    txtAlbum = RTrim(.album)
    txtYear = RTrim(.year)
    txtComment = RTrim(.comment)
    temp = RTrim(.genre)
    txtGenreCode = Asc(temp)
    End With
    Close #1
    Worksheets("Tabelle1").Cells(StartRow + i, 3).Value = txtTitle
    Worksheets("Tabelle1").Cells(StartRow + i, 4).Value = txtArtist
    Worksheets("Tabelle1").Cells(StartRow + i, 5).Value = txtAlbum
    Worksheets("Tabelle1").Cells(StartRow + i, 6).Value = txtYear
    Worksheets("Tabelle1").Cells(StartRow + i, 7).Value = txtComment
    Worksheets("Tabelle1").Cells(StartRow + i, 8).Value = temp
    Worksheets("Tabelle1").Cells(StartRow + i, 9).Value = txtGenreCode
    NewSongTitle = Worksheets("Tabelle1").Cells(StartRow + i, 2).Value
    Open FileName For Binary As #1
    With CurrentTag
    Put #1, FileLen(FileName) - 127, .Tag     ' <--- Hier hapert es <---
    Put #1, , NewSongTitle                    ' <--- Hier hapert es <---
    Put #1, , txtArtist
    Put #1, , txtAlbum
    Put #1, , txtYear
    Put #1, , txtComment
    Put #1, , txtGenreCode
    End With
    Close #1
    Else
    Exit Sub
    End If
    Next i
    End Sub
    

    3
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Daten in mp3 ändern
    10.06.2014 12:04:04
    fcs
    Hallo Fred,
    ich denke, dass du die Variablen wieder auf die in der Variablendefinition angegebenen Länge mit Leerzeichne auffüllen musst. Der neue Titel darf auch nicht länger als die Vorgabewerte sein.
    Gruß
    Franz
    Private Type TagInfo
    Tag As String * 3
    Songname As String * 30
    artist As String * 30
    album As String * 30
    year As String * 4
    comment As String * 30
    genre As String * 1
    End Type
    Dim FileName As String
    Dim CurrentTag As TagInfo
    Sub Command1_Click()
    StartRow = 3
    For i = 1 To 1
    FileName = Worksheets("Tabelle1").Cells(StartRow + i, 1).Value
    If FileName <> "" Then
    Open FileName For Binary As #1
    With CurrentTag
    Get #1, FileLen(FileName) - 127, .Tag
    Get #1, , .Songname
    Get #1, , .artist
    Get #1, , .album
    Get #1, , .year
    Get #1, , .comment
    Get #1, , .genre
    txtTitle = RTrim(.Songname)
    txtArtist = RTrim(.artist)
    txtAlbum = RTrim(.album)
    txtYear = RTrim(.year)
    txtComment = RTrim(.comment)
    temp = RTrim(.genre)
    txtgenrecode = Asc(temp)
    End With
    Close #1
    Worksheets("Tabelle1").Cells(StartRow + i, 3).Value = txtTitle
    Worksheets("Tabelle1").Cells(StartRow + i, 4).Value = txtArtist
    Worksheets("Tabelle1").Cells(StartRow + i, 5).Value = txtAlbum
    Worksheets("Tabelle1").Cells(StartRow + i, 6).Value = txtYear
    Worksheets("Tabelle1").Cells(StartRow + i, 7).Value = txtComment
    Worksheets("Tabelle1").Cells(StartRow + i, 8).Value = temp
    Worksheets("Tabelle1").Cells(StartRow + i, 9).Value = txtgenrecode
    newsongtitle = Worksheets("Tabelle1").Cells(StartRow + i, 2).Value
    Open FileName For Binary As #1
    With CurrentTag
    Put #1, FileLen(FileName) - 127, .Tag
    Put #1, , fncSetLength(newsongtitle, 30)
    Put #1, , fncSetLength(txtArtist, 30)
    Put #1, , fncSetLength(txtAlbum, 30)
    Put #1, , fncSetLength(txtYear, 4)
    Put #1, , fncSetLength(txtComment, 30)
    Put #1, , fncSetLength(temp, 1)
    End With
    Close #1
    Else
    Exit Sub
    End If
    Next i
    End Sub
    Function fncSetLength(ByVal strText As String, ByVal intL As Integer) As String
    fncSetLength = strText
    If Len(strText) < intL Then
    fncSetLength = strText & Space(intL - Len(strText))
    ElseIf Len(strText) > intL Then
    fncSetLength = Left(strText, intL)
    End If
    End Function
    

    Anzeige
    AW: Daten in mp3 ändern
    10.06.2014 15:47:17
    Fred
    Hallo Franz,
    das hört sich sehr plausibel an. Ich werde es versuchen.
    Danke für diesen Hinweis!
    Grüße,
    Fred

    AW: Daten in mp3 ändern
    10.06.2014 15:47:18
    Fred
    Hallo Franz,
    das hört sich sehr plausibel an. Ich werde es versuchen.
    Danke für diesen Hinweis!
    Grüße,
    Fred

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige