Forums
New posts
Search forums
What's new
New posts
New profile posts
Latest activity
Members
Current visitors
New profile posts
Search profile posts
C# Community
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Menu
Log in
Register
Install the app
Install
VB.NET
VB.NET General Discussion
Can't append to a string?
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
[QUOTE="b3jsd73jfx, post: 66030, member: 6050"] Alright, I have a class I'm using (I did not create the class, one I found online), and for some reason whenever I try to append any string information to the .SongTitle string return of the class, it will not append the string. Here's the class: [code]Imports System.IO Imports System.Text Imports System.Text.ASCIIEncoding Public Class ID3v1 ' Reads ID3 Version 1.1 tags #Region " Private Members " Private _Tag(127) As Byte Private _FileName As String Private _Genres As String() = { _ "Blues", "Classic Rock", "Country", "Dance", "Disco", _ "Funk", "Grunge", "Hip-Hop", "Jazz", "Metal", _ "New Age", "Oldies", "Other", "Pop", "R&B", _ "Rap", "Reggae", "Rock", "Techno", "Industrial", _ "Alternative", "Ska", "Death Metal", "Pranks", "Soundtrack", _ "Euro-Techno", "Ambient", "Trip-Hop", "Vocal", "Jazz+Funk", _ "Fusion", "Trance", "Classical", "Instrumental", "Acid", _ "House", "Game", "Sound Clip", "Gospel", "Noise", _ "AlternRock", "Bass", "Soul", "Punk", "Space", _ "Meditative", "Instrumental Pop", "Instrumental Rock", "Ethnic", "Gothic", _ "Darkwave", "Techno-Industrial", "Electronic", "Pop-Folk", "Eurodance", _ "Dream", "Southern Rock", "Comedy", "Cult", "Gangsta", _ "Top 40", "Christian Rap", "Pop/Funk", "Jungle", "Native American", _ "Cabaret", "New Wave", "Psychadelic", "Rave", "Showtunes", _ "Trailer", "Lo-Fi", "Tribal", "Acid Punk", "Acid Jazz", _ "Polka", "Retro", "Musical", "Rock & Roll", "Hard Rock", _ "Folk", "Folk-Rock", "National Folk", "Swing", "Fast Fusion", _ "Bebob", "Latin", "Revival", "Celtic", "Bluegrass", _ "Avantgarde", "Gothic Rock", "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", _ "Slow Rock", "Big Band", "Chorus", "Easy Listening", "Acoustic", _ "Humour", "Speech", "Chanson", "Opera", "Chamber Music", _ "Sonata", "Symphony", "Booty Bass", "Primus", "Porn Groove", _ "Satire", "Slow Jam", "Club", "Tango", "Samba", _ "Folklore", "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", _ "Duet", "Punk Rock", "Drum Solo", "A capella", "Euro-House", _ "Dance Hall" _ } #End Region Public Property FileName() As String Get Return _FileName End Get Set(ByVal Value As String) Dim Stream As FileStream Try ' Read last 128 bytes of file Stream = New FileStream(Value, FileMode.Open) Stream.Seek(-128, SeekOrigin.End) Stream.Read(_Tag, 0, 128) ' If tag not present, reset If Not ASCII.GetString(_Tag, 0, 3) = "TAG" Then ResetTag() _FileName = Value Catch ex As Exception _FileName = "" ResetTag() Finally If Not Stream Is Nothing Then Stream.Close() End Try End Set End Property Private Sub ResetTag() ' Set all values to null Array.Clear(_Tag, 0, 128) End Sub Public ReadOnly Property Genre() As String Get If FileName = "" Then Return "" ' 0 - 79 = standard genres ' 80 - 125 = winamp genres If _Tag(127) < 126 Then Return _Genres(_Tag(127)) Else Return "" End If End Get End Property Public ReadOnly Property SongTitle() As String Get Return ASCII.GetString(_Tag, 3, 30).Trim() End Get End Property Public ReadOnly Property Artist() As String Get Return ASCII.GetString(_Tag, 33, 30).Trim() End Get End Property Public ReadOnly Property Album() As String Get Return ASCII.GetString(_Tag, 63, 30).Trim() End Get End Property Public ReadOnly Property Year() As String Get Return ASCII.GetString(_Tag, 93, 4).Trim() End Get End Property Public ReadOnly Property Comment() As String Get ' if last byte of comment is specified, but ' second to last is null, then last byte = track If _Tag(125) = 0 And Not _Tag(126) = 0 Then Return ASCII.GetString(_Tag, 97, 28).Trim() Else Return ASCII.GetString(_Tag, 97, 30).Trim() End If End Get End Property Public ReadOnly Property Track() As String Get ' if last byte of comment is specified, but ' second to last is null, then last byte = track If _Tag(125) = 0 And Not _Tag(126) = 0 Then Return _Tag(126).ToString Else Return "" End If End Get End Property End Class[/code] Here's the code I'm trying to run: [code] Private Sub LoadFiles(ByVal Root As String) For Each iFile As String In Directory.GetFiles(Root, "*.mp3") Dim ID3 As New ID3v1 ID3.FileName = iFile If ID3.Track <> "" And ID3.SongTitle <> "" Then Dim Title As String = ID3.SongTitle.ToString.Trim() Dim Track As String = ID3.Track.ToString If ID3.Track.Length = 1 Then Track = "0" & Track End If [COLOR="Blue"]MsgBox(Track & " - " & Title & ".mp3")[/COLOR] End If Next For Each Dir As String In Directory.GetDirectories(Root) LoadFiles(Dir) Next End Sub[/code] The blue line describes where the error occurs. The ".mp3" extension will not show up. However, if I remove the reference to Title, then it works fine. Any ideas? [/QUOTE]
Insert quotes…
Verification
Post reply
VB.NET
VB.NET General Discussion
Can't append to a string?
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…
Top
Bottom