質問

私はVB.NET 2005でプロジェクトを行っています。ここでは、MP3ファイルのタグ情報を抽出する必要があります。そのために、私はこれにコードを使用しました ページ. 。しかし、問題は、タグの1つが空の場合、値を返しませんでした。

たとえば、これを使用して、このようなアルバム情報を取得できます。

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

しかし、私はアルバム変数が空であるかどうかを確認する方法を知りませんでした、私はアルバム変数をチェックしました

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

しかし、成功しません、誰かが私を助けてくれますか。

役に立ちましたか?

解決 2

私はこの問題を解決するために正規表現を使用しました。ご助力いただきありがとうございます...

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

もっとプロのタグ編集をお探しの場合 リンク!

他のヒント

ID3V1タグは、ファイルの最後の128バイトに保存されます。最初の3バイトは、ファイルがタグを保存することを示す「タグ」です。最初にファイルにタグがあるかどうかを確認してから、読み取ります。

私はVBを知りませんが、フレームを読む前に、あなたはまず:

  1. ファイルを開きます Dim objMP3V1 As New MP3ID3v1("file_path")
  2. テスト、ファイルにID3v1タグが含まれている場合 objMP3V1.TagExists フラグは本当です
  3. 次に、フィールド/フレームを読みます。

編集

リンクのコードには言います

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

したがって、タグが存在しない場合は、 "" 文字列として割り当てられます。

id3v1フィールドは固定された長さなので、に文字列がない場合 album フィールドには、num文字列が含まれている必要があります。つまり、フィールドの最初の場所にはヌル文字が含まれます '\0', したがって、ヌル文字列を返します "". 。 ID3v1タグを使用したサンプルミュージックファイルでこれを確認するようにお知らせします。 (ID3v1でフォーマットされたテキストファイルを作成してテストすることもできます)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top