vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Problem 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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem beim Speichern von ID3v1 Tags632Majuz25.12.04 14:23
Re: Problem beim Speichern von ID3v1 Tags360Radeonmaster25.12.04 19:49
Re: Problem beim Speichern von ID3v1 Tags340Majuz25.12.04 19:58

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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