Frage

Ich mache ein Projekt in VB.NET 2005, in dem ich die Tag -Informationen von MP3 -Dateien extrahieren muss. Zu diesem Zweck habe ich darin Code verwendet Seite. Aber das Problem ist, wenn eines der Tags leer ist, gab es keine Werte zurück.

Zum Beispiel kann ich mit dieser Verwendung Albuminformationen wie diese abrufen.

    Dim album As String = ""
    album = objMP3V1.Frame(MP3ID3v1.FrameTypes.Album)

Aber ich wusste nicht, wie man die Albumvariable leer ist oder nicht. Ich habe die Albumvariable überprüft

    If (album = "") Then
        MsgBox("true")
    ElseIf (album Is Nothing) Then
        MsgBox("true")
    ElseIf (album Is DBNull.Value) Then
        MsgBox("true")
    End If

Aber kein Erfolg, kann mir jemand helfen.

War es hilfreich?

Lösung 2

Ich habe regelmäßigen Ausdruck verwendet, um dieses Problem zu lösen. Danke für deine Hilfe...

Imports System.Text.RegularExpressions
dim RegEx As New RegularExpressions.Regex("^[a-zA-Z0-9]+$")
dim Match As Match
dim film as string
film = song.Frame(MP3ID3v1.FrameTypes.Album)
Match = RegEx.Match(film)
film1 = IIf((Match.Success), film.ToString, "")  

Wenn Sie nach mehr professionellem Tag Editior suchen eine Verbindung!

Andere Tipps

Das ID3V1 -Tag ist in den letzten 128 Bytes der Datei gespeichert. Die ersten drei Bytes sind "Tag", aus denen hervorgeht, dass die Datei das Tag speichert. Überprüfen Sie also zuerst, ob die Datei ein Tag hat, und lesen Sie sie dann.

Ich kenne VB nicht, aber ich denke, bevor Sie den Rahmen lesen, sollten Sie zuerst:

  1. Öffne die Datei Dim objMP3V1 As New MP3ID3v1("file_path")
  2. Test, wenn die Datei ein ID3V1 -Tag enthält, indem Sie testen, ob objMP3V1.TagExists Flag ist wahr
  3. Lesen Sie dann die Felder/Frames.

BEARBEITEN

Der Code im Link heißt

FileGet(intFile, strTag, lngLOF - 127, True)
        If (strTag.ToUpper <> "TAG") Then

            ' No ID3v1 tag found

            mblnTagExists = False
            mobjFrame(0) = ""
            mobjFrame(1) = ""
            mobjFrame(2) = ""
            mobjFrame(3) = ""
            mobjFrame(4) = ""
            mobjFrame(5) = ""
            mobjFrame(6) = ""

        Else

            ' ID3v1 tag found

            mblnTagExists = True

            ' Read all frames from the file

            FileGet(intFile, strTitle)
            FileGet(intFile, strArtist)
            FileGet(intFile, strAlbum)
            FileGet(intFile, strYear)
            FileGet(intFile, strComment)
            FileGet(intFile, bytDummy)
            FileGet(intFile, bytTrack)
            FileGet(intFile, bytGenre)

            ' Assign the frame content to the properties

            mobjFrame(0) = strTitle
            mobjFrame(1) = strArtist
            mobjFrame(2) = strAlbum
            mobjFrame(3) = strYear
            mobjFrame(4) = bytTrack
            mobjFrame(5) = strComment
            mobjFrame(6) = bytGenre

        End If
    End If

Also, wenn das Tag nicht vorhanden ist, sollte es haben "" als Zeichenfolge zugewiesen.

ID3V1 -Felder sind von fester Länge. Wenn also keine Zeichenfolge in der vorhanden ist album Feld dann sollte es eine Num -Zeichenfolge enthalten, dh der erste Ort des Feldes enthält ein Nullzeichen '\0', Daher wird es eine Null -Zeichenfolge zurückgeben "". Ich würde Ihnen sagen, dass Sie dies in einer Beispiel -Musikdatei mit ID3V1 -Tags überprüfen sollen. (Sie können sogar eine mit ID3V1 formatierte Textdatei erstellen und testen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top