| |

Visual-Basic EinsteigerProblem beim Speichern von ID3v1 Tags | |  | Autor: Majuz | Datum: 25.12.04 14:23 |
| Hallo zusammen,
erst mal allen ein frohes weihnachtsfest!
Nun zu meinem Problem:
Ich möchte ein kleines Tool schreiben mit dem ich ID3v1 Tags aus mp3-Dateien auslesen kann. ich hab mich an den TIP von dieser Seite gehalten und auch schon im Forum nach Lösungen gesucht, aber nix gefunden. Das Auslesen und Anzeigen funktioniert einwandfrei, nur beim Schreiben löscht er alles. Wenn ich z.b. nur den Artist ändere löscht er den kompletten ID3-Tag. Ich weiß absolut nicht mehr weiter.
hier mal der relevante ausschnitt aus meinem code:
Dim aktuell As ID3v1
Private Type ID3v1
TAG As String * 3 ' TAG
Title As String * 30 ' Titel des Liedes
Artist As String * 30 ' Interpret
Album As String * 30 ' Album
Year As String * 4 ' Erscheinungsjahr
Comments As String * 30 ' Kommentar
Genre As Byte ' Indexnummer des Genres
End Type
Private Function MP3_ReadID3v1(ByVal sFIle As String) As ID3v1
Dim F As Integer
Dim UDT_MP3 As ID3v1
F = FreeFile
Open sFIle For Binary As #F
Seek #F, LOF(F) - Len(UDT_MP3) + 1
Get #F, , UDT_MP3
Close #F
If UDT_MP3.TAG = "TAG" Then
' "TAG" vorhanden?
MP3_ReadID3v1 = UDT_MP3
End If
End Function
Private Sub Command_ID3_Speichern_Click()
Dim bisher As ID3v1
Dim Position As Integer
Dim file As String
Dim i As Integer
If List_Dateien.SelCount < 2 Then
Position = List_Dateien.ListIndex
Datei = List_Dateien.List(Position)
bisher = MP3_ReadID3v1(Ordner & "\" & Datei)
If Check_Artist_übernehmen.Value = 1 Then
aktuell.Artist = Text_Artist.Text
Else
aktuell.Artist = bisher.Artist
End If
If Check_Title_Übernehmen.Value = 1 Then
aktuell.Title = Text_Title.Text
Else
aktuell.Title = bisher.Title
End If
If Check_Album_Übernehmen.Value = 1 Then
aktuell.Album = Text_Album.Text
Else
aktuell.Album = bisher.Album
End If
If Check_Genre_Übernehmen.Value = 1 Then
aktuell.Genre = Combo_Genre.ListIndex
Else
aktuell.Genre = bisher.Genre
End If
file = Ordner & "\" & Datei
MP3_SaveID3v1 file, aktuell
Else
For i = 0 To List_Dateien.ListCount
If List_Dateien.Selected(i) = True Then
Datei = List_Dateien.List(i)
bisher = MP3_ReadID3v1(Ordner & "\" & Datei)
If Check_Artist_übernehmen.Value = 1 Then
aktuell.Artist = Text_Artist.Text
Else
aktuell.Artist = bisher.Artist
End If
If Check_Title_Übernehmen.Value = 1 Then
aktuell.Title = Text_Title.Text
Else
aktuell.Title = bisher.Title
End If
If Check_Album_Übernehmen.Value = 1 Then
aktuell.Album = Text_Album.Text
Else
aktuell.Album = bisher.Album
End If
If Check_Genre_Übernehmen.Value = 1 Then
aktuell.Genre = Combo_Genre.ListIndex
Else
aktuell.Genre = bisher.Genre
End If
file = Ordner & "\" & Datei
MP3_SaveID3v1 file, aktuell
End If
Next i
End If
End Sub
Private Sub MP3_SaveID3v1(ByVal sFIle As String, UDT_MP3 As ID3v1)
Dim G As Integer
G = FreeFile
Open sFIle For Binary Access Write As #G
Seek #G, FileLen(sFIle) - 127
Put #G, , UDT_MP3
Close #G
End Sub Ich möchte nur den Artist, Title, Album und das Genre ändern können, der Rest ist mir egal. Ich möchte aber auch mehrere Dateien auswählen können und die soll er dann alle ändern. Deshalb habe ich hinter jedem Textfeld eine Checkbox. Wenn die markiert ist soll er das was im Textfeld steht in alle Dateien schreiben, falls die nicht ausgewählt ist soll er das stehen lassen was bisher drin stand.
Ich hoffe ihr könnt mir helfen!
Majuz
PS: ich benutze VB6 |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) sevOutBar 4.0 
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|