I'm trying to do an MP3 organizer, so that I can have all my MP3s organized ("ordered by") Artist, Theme, Album, or whatever. I've already "found" how to get all the info from an MP3, but the problem is that it's too slow (extremely slow). The Open statement to read the file is quite slow. Do you know any other way to do this. Here's the code:


Code:
Private Type MP3FrameData
    Tag As String
    Title As String
    Artist As String
    Album As String
    Year As Integer
    Comment As String
    Genre As Integer
End Type

Private Sub Form_Load()
    Dim MP3Frames As String
    Dim MP3Info() As MP3FrameData
    
    ReDim MP3Info(0) As MP3FrameData
    MP3s.Path = "C:\Downloaded Files\MP3"
        
    For i = 0 To MP3s.ListCount - 1
        DoEvents
        ReDim Preserve MP3Info(UBound(MP3Info) + 1) As MP3FrameData
        Open MP3s.Path & "\" & MP3s.List(i) For Binary As #1
        MP3Frames = Input(LOF(1), 1)
        Close #1
        MP3Frames = Mid$(MP3Frames, Len(MP3Frames) - 127)
        With MP3Info(UBound(MP3Info))
            .Tag = GetInfo(MP3Frames, 3)
            .Title = GetInfo(MP3Frames, 30)
            .Artist = GetInfo(MP3Frames, 30)
            .Album = GetInfo(MP3Frames, 30)
            .Year = Val(GetInfo(MP3Frames, 4))
            .Comment = GetInfo(MP3Frames, 30)
            .Genre = Val(GetInfo(MP3Frames, 1))
        End With
    Next i
    End
    
End Sub

Private Function GetInfo(FullData As String, Lenght As Integer)
    GetInfo = Trim$(Trim0(Left$(FullData, Lenght)))
    FullData = Mid$(FullData, Lenght + 1)

End Function

Private Function Trim0(Data As String)
    Dim i As Integer
    For i = Len(Data) To 1 Step -1
        If Mid$(Data, i, 1) <> Chr$(0) Then Exit For
    Next i
    Trim0 = Left$(Data, i)
    
End Function