In dem Tipp Hier der Code: ' Liest eine Playlist (m3u-Datei) in ein ListView-Control Function ReadM3U(ByVal sFilename As String, _ LV_Playlist As ListView) As Boolean Dim Textzeile As String Dim Zeile As Long Dim Wrong As Boolean Dim LastZeile As String Dim strLVText As String Dim stred As Long Dim Laenge As String Dim Laenge_Text As String Dim FileTitle As String Dim FileExt As String Dim Laenge_tmp Dim F As Integer On Error GoTo ErrHandler With LV_Playlist ' ListView-Spalten erstellen .Sorted = False .View = lvwReport .ColumnHeaders.Clear .ColumnHeaders.Add , , "Titel / Dateiname", .Width - 1600 .ColumnHeaders.Add , , "Länge", 1000, 1 ' ListView-Einträge löschen .ListItems.Clear ' Playlist auslesen Zeile = 0 F = FreeFile Open sFilename For Input As #F ' Schleife bis Dateiende Do While Not EOF(F) Zeile = Zeile + 1 ' Zeile in Variable einlesen. Line Input #F, Textzeile If Zeile = 1 And Textzeile <> "#EXTM3U" Then Wrong = True End If If Left$(LastZeile, 8) = "#EXTINF:" Then ' zusätzliche Infos der zuletzt eingelesenen ' Zeile auswerten strLVText = Right$(LastZeile, Len(LastZeile) - 8) ' Länge (Spieldauer) ermitteln stred = InStr(strLVText, ",") If stred > 0 Then Laenge = Left$(strLVText, stred - 1) Laenge_Text = Format(Laenge / 60, "00.00") Laenge_Text = ReplaceM(Laenge_Text, ",", ":", ".", ":") strLVText = Right$(strLVText, Len(strLVText) - stred) Laenge_tmp = "": stred = 0 stred = InStr(Laenge_Text, ":") If stred > 0 Then Laenge_tmp = Right$(Laenge_Text, Len(Laenge_Text) - stred) Laenge_tmp = Format((Laenge_tmp / 99) * 60, "0") Laenge_tmp = Format(Laenge_tmp, "00") Laenge_Text = Left$(Laenge_Text, stred - 1) & ":" & Laenge_tmp End If End If ' Titel FileTitle = GetFileFromPath(Textzeile) FileExt = GetFileExt(FileTitle) If FileExt <> "" Then FileExt = "." & FileExt FileTitle = Left$(FileTitle, Len(FileTitle) - Len(FileExt)) ' Aktuellen Titel im ListView anzeigen If FileTitle <> strLVText Then .ListItems.Add , , strLVText & " - [" & Textzeile & "]" Else .ListItems.Add , , strLVText End If .ListItems(.ListItems.Count).SubItems(1) = Laenge_Text End If LastZeile = Textzeile Loop ' Datei schließen. Close #F End With ErrHandler: If Err > 0 Then Wrong = True ReadM3U = (Wrong = False) End Function Hilfsfunktionen: ' Hilfsfunktion: String-Ersetzen Function ReplaceM(ByVal FromStr As String, _ ParamArray varReplacements() As Variant) As String Dim intMacro As Integer Dim strResString As String Dim nFrom As Integer Dim nTo As Integer Dim strMacro As String Dim strValue As String On Error Resume Next strResString = FromStr ' Für jedes übergebene Makro/Wert-Paar... nFrom = LBound(varReplacements) nTo = UBound(varReplacements) For intMacro = nFrom To nTo Step 2 strMacro = varReplacements(intMacro) strValue = varReplacements(intMacro + 1) On Error GoTo 0 ' Ersetzen aller vorkommenden strMacro ' durch strValue Dim intPos As Integer Do intPos = InStr(strResString, strMacro) If intPos > 0 Then strResString = Left$(strResString, intPos - 1) & _ strValue & Right$(strResString, _ Len(strResString) - Len(strMacro) - intPos + 1) End If Loop Until intPos = 0 Next intMacro ReplaceM = strResString On Error GoTo 0 Exit Function End Function ' Hilfsfunktion ' Ermittelt die Dateierweiterung eines Dateinamens Function GetFileExt(Pfadname As String) Dim Dateinamen As String Dim Länge As Integer Dim n As Integer Dim Position As Integer Länge = Len(Pfadname) Do n = InStr(n + 1, Pfadname, ".") If n = 0 Then Exit Do Position = n Loop If Position <> 0 Then GetFileExt = StrConv(Right$(Pfadname, _ Länge - Position), vbUpperCase) End If End Function ' Hilfsfunktion ' Ermittelt den Dateinamen aus Pfad+Datei Function GetFileFromPath(Pfadname As String) Dim Dateinamen As String Dim Länge As Integer Dim n As Integer Dim Position As Integer Länge = Len(Pfadname) Do n = InStr(n + 1, Pfadname, "\") If n = 0 Then Exit Do Position = n Loop GetFileFromPath = Right$(Pfadname, _ Länge - Position) End Function Beispiel: Fügen Sie obigen Code in das Codefenster der Form1 ein. Beim Starten der Form soll dann eine bestimmte Playliste ausgelesen und angezeigt werden: Private Sub Form_Load() ' Playlist anzeigen ReadM3U "MyPlaylist.m3u", ListView1 End Sub Dieser Tipp wurde bereits 16.455 mal aufgerufen.
Anzeige
![]() ![]() ![]() (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. |
sevZIP40 Pro DLL ![]() Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats ![]() Dieter Otter Druckposition in mm festlegen Mit einer kleinen Umrechnungsfunktion lässt sich die Druckposition auch in mm bestimmten. Access-Tools Vol.1 ![]() Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |