質問
私は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を知りませんが、フレームを読む前に、あなたはまず:
- ファイルを開きます
Dim objMP3V1 As New MP3ID3v1("file_path")
- テスト、ファイルにID3v1タグが含まれている場合
objMP3V1.TagExists
フラグは本当です - 次に、フィールド/フレームを読みます。
編集
リンクのコードには言います
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でフォーマットされたテキストファイルを作成してテストすることもできます)。
所属していません StackOverflow