vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Multimedia & Sound · Audio   |   VB-Versionen: VB5, VB628.12.02
Auslesen einer .m3u-Datei

Dieses Beispiel zeigt, wie sich eine .m3u-Datei in ein String-Array auslesen lässt.

Autor:   Jochum ReneBewertung:  Views:  26.816 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Bei M3U (.m3u) handelt es sich um eine Dateierweiterung für eine "Abspielliste" von MP3 Audio-Dateien, welche von vielen Media-Player verwendet werden, u.a. auch von WinAmp. Hierbei enthält eine M3U-Datei lediglich Informationen, wo sich die MP3-Datei befindet - entweder lokal auf dem System oder auch im Internet.

Das nachfolgende Beispiel zeigt, wie sich eine solche M3U-Datei auslesen lässt. Die Funktion selbst gibt die Dateinamen in einem String-Array als Rückgabewert zurück. Über den optionalen Parameter bOnlyIfExists können Sie angeben, ob hierbei nur MP3s ausgelesen werden sollen, die auch lokal auf dem System existieren.

Und hier die Funktion:

Public Function fGetM3u(ByVal sM3uFile As String, _
  Optional ByVal bOnlyIfExist As Boolean = False) As Variant
 
  Dim F As Integer
  Dim sLine As String
  Dim nCount As Long
  Dim nUBound As Long
  Dim bResult As Boolean
  Dim sPlayList As Variant
 
  ' Datei auslesen
  nCount = -1
  ReDim sPlayList(0)
 
  F = FreeFile
  Open sM3uFile For Input As #F
  While Not EOF(F)
    Line Input #F, sLine
    If Left$(sLine, 1) <> "#" Then
      ' Jepp, it's a Path...
      bResult = True
      If bOnlyIfExist Then
        ' ...prüfen, ob Datei existsiert
        On Error Resume Next
        bResult = (Dir$(sLine) <> "")
        If Err <> 0 Then bResult = False
        On Error GoTo 0
      End If
 
      If bResult Then
        ' und ab ins Array
        nCount = nCount + 1
        If nCount > nUBound Then
          nUBound = 2 * nCount
          ReDim Preserve sPlayList(nUBound)
        End If
        sPlayList(nCount) = sLine
      End If
    End If
  Wend
  Close #F
 
  ' Array-Größe "korrigieren"
  If nCount >= 0 Then
    ReDim Preserve sPlayList(nCount)
    fGetM3u = sPlayList
  End If
End Function

Beispiel für den Aufruf:

Dim myList As Variant
myList = fGetM3u(App.Path & "\Playlist.m3u", False)
 
' Alle Einträge in einer ListBox anzeigen
If IsArray(myList) Then
  Dim i As Integer
  For i = 0 To UBound(myList)
    List1.AddItem myList(i)
  Next i
End If



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.