Domanda

Sto facendo un progetto in VB.NET 2005, in cui devo estrarre le informazioni dei tag dei file mp3. A tal fine ho codice utilizzato in questo pagina . Ma il problema è quando uno dei tag è vuoto, non ha restituito alcun valore.

Ad esempio, utilizzando questo posso recuperare informazioni album come questo,

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

Ma non sapevo come controllare la variabile album è vuoto o no, ho controllato variabile album

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

, ma senza successo, Qualcuno può aiutarmi.

È stato utile?

Soluzione 2

Ho usato espressioni regolari per risolvere questo problema. Grazie per tutto il vostro aiuto ...

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, "")  

Se si cerca di tag più professionale editior Ecco un link !

Altri suggerimenti

tag

L'ID3v1 viene memorizzato negli ultimi 128 byte del file. I primi tre byte sta dicendo "TAG" che i negozi di file il tag. Quindi, prima verifica se il file ha un tag, poi leggerli.

Non so VB ma penso che prima di leggere il telaio, si deve prima:

  1. Apri il file Dim objMP3V1 As New MP3ID3v1("file_path")
  2. Prova, se il file ha un tag ID3v1 in esso testando se objMP3V1.TagExists flag è vero
  3. Poi leggi i campi / fotogrammi.

Modifica

Il codice nel link dice

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

Quindi, se il tag non è presente allora dovrebbe avere "" assegnato come stringa.

campi ID3v1 sono di lunghezza fissa, quindi se c'è alcuna stringa nel campo album allora dovrebbe contenere una stringa num, cioè la prima posizione del campo conterrà un '\0' carattere nullo, pertanto verrà restituito un nullo stringa di "". Io vi direi di controllare il questo su un file musicale campione con tag ID3v1. (È anche possibile creare un file di testo formattato con ID3v1 e testarlo).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top