Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Probleme mit nem Playlist (*.M3U) Code! (https://www.delphipraxis.net/31432-probleme-mit-nem-playlist-%2A-m3u-code.html)

Wishmaster 9. Okt 2004 02:47


Probleme mit nem Playlist (*.M3U) Code!
 
Hi

Ich habe einige kleine Probleme mit nem Playlist (*.M3U) Code!
Er funzt zu 95%! Wen die liste wie folgt Aussieht.

Problem Nr.1
--------------------------------------------------------------
#EXTM3U
#EXTINF:220,Barracuda - Damn
G:\xxx\ok\109_barracuda_-_damn-mod.mp3
#EXTINF:200,sam g - lost in space
G:\xxx\ok\110-sam_g_-_lost_in_space-tlt.mp3
#EXTINF:205,André Visior - Don't Go
G:\xxx\ok\110_andre_visior_-_dont_go-nbd.mp3
#EXTINF:200,DJ K - I like Chopin
G:\xxx\ok\110_dj_k_-_i_like_chopin-mod.mp3


Wen in der liste der bereich (#EXTINF) feilt kackt er Up
--
#EXTM3U
#EXTINF:220,Barracuda - Damn
G:\xxx\ok\109_barracuda_-_damn-mod.mp3
#EXTINF:200,sam g - lost in space
G:\xxx\ok\110-sam_g_-_lost_in_space-tlt.mp3
G:\xxx\ok\110_andre_visior_-_dont_go-nbd.mp3
G:\xxx\ok\110_dj_k_-_i_like_chopin-mod.mp3
--------------------------------------------------------------
Problem Nr.2

Wie kann ich die zeit auslesen (#EXTINF:220, Title) 220 = Time



Code:
FileList   : TStringList;
FileTitle  : TStringList;
FileLength : TStringList;


function TPlaylist.LoadM3U(FileName : String; ClearCurrent : Boolean) : Boolean;
var i : Integer; FileINI : TStringList; Temp : String;
begin
 CurPlaylist := FileName;
  try
   if ClearCurrent then
    begin
      {FileList.Clear;
      FileTitle.Clear;
      FileLength.Clear}
      Clear;
     end;
      FileINI := TStringList.Create;
      FileINI.LoadFromFile(FileName);

           i := 0;
    While (i < FileINI.Count - 1) do
     begin
       Temp := UpperCase(Trim(FileINI[i]));

   if (Copy(Temp, 1, 1) <> '#') then
       FileList.Add(ProcessPath(FileINI[i]))
      else
    if Copy(Temp, 1, 8) = '#EXTINF:' then
     begin
       FileTitle.Add(Copy(FileINI[i], Pos(',', FileINI[i]) + 1, Length(FileINI[i])));
       FileLength.Add('0');
     end
       Inc(i);
     end;
      FileINI.Free;
     result := True;
   except
    result := False;
  end;
end;

Danke im Voraus!

SirThornberry 9. Okt 2004 06:58

Re: Probleme mit nem Playlist (*.M3U) Code!
 
Warum so umständlich. Lade die Datei einfach in eine Stringlist und anschließend gehst du zeile für Zeile durch und verarbeitest nur die Zeilen die nicht mit "#" beginnen.

warum nimmst du überhaupt eine while schleife anstelle einer For-Schleife? anstelle von
Delphi-Quellcode:
       i := 0;
    While (i < FileINI.Count - 1) do
     begin
kannst du doch einfach
Delphi-Quellcode:
  for i := 0 to FileIni.Count - 1 do
nehmen. Zudem verstehe ich nicht warum da bei dir "i < FileIni.Count - 1" steht. Da kann doch das "-1" weg gelassen werden da du ja schon auf "<" prüfst

Achja, deine Formatierung ist einfach gruselig um es gelinde auszudrücken.

Wishmaster 9. Okt 2004 22:28

Re: Probleme mit nem Playlist (*.M3U) Code!
 
Hi

Erstmals danke für deine schnelle antwort!


1: ich will die Gesamte liste habe nicht nur die einträge mit `#`!
bei `#` = FileTitle (DJ K - I like Chopin)
andernfalls
FileTitle(G:\xxx\ok\110_dj_k_-_i_like_chopin-mod.mp3)

Das Problem ist ich kriege das nicht richtig gefiltert und ich weis nicht wo der feiler liegt.


2: das mit ( for i := 0 to FileIni.Count - 1 do) hatte ich schon versucht, soweit ich das sehe Spielt das keine rolle ob ich das mit While oder mit for mache! Habe das selbe Ergebnis.
Außerdem das ist nur en test.

SirThornberry 9. Okt 2004 23:55

Re: Probleme mit nem Playlist (*.M3U) Code!
 
mit welcher Fehlermeldung "kackt er ab"? Und an welcher Stelle ist dann der Haltepunkt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz