Entwickler-Ecke

Dateizugriff - WinAmp PlayList


Bountyhunter - Sa 19.10.02 17:05
Titel: WinAmp PlayList
hallo!
ich hoffe das ist die richtige sparte. also, ich möchte, dass alle mp3 dateien in einer playlist in einen ordner kopiert werden. wenn man die playlist per editor öffnet, dann ist jede 2. zeile der dateiname. wie mach ich so ungefähr (ich kenn mich schon etwas aus) dass also diese dateinamen gelesen werden und die dateien dann in einen ordner meiner wahl kopiert werden?
mfg
Bountyhunter


AndyB - Sa 19.10.02 17:41


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var List: TStrings;
begin
  List := TStringList.Create;
  try
    List.LoadFromFile(Dateiname);
    List.Delete(0); // '#EXTM3U' Zeile entfernen
   // jede 1. Zeile entfernen und jede 2. stehen lassen
    for i := List.Count - 1 downto 0 do
      if i mod 2 = 0 then List.Delete(i);

    DateilisteVerarbeiten(List);
  finally
    List.Free;
  end;
end;


Bountyhunter - Sa 19.10.02 20:39

Hallo!
erst mal danke, das is schon sehr gut. nur habe ich doch noch eine frage und zwar wie kopiere ich nun die files? mit copyfile heisst es immer incompatible types TStringlist and Pchar und Strings and TstringList und natürlich String and PChar. was mach ich da am besten?
danke
Bountyhunter


DeCodeGuru - Sa 19.10.02 20:41

du kannst eine Zeile der Stringlist folgendermaßen in PChar umwandeln:


Quelltext
1:
PChar(List[12]) //der Wert in den [] gibt die Zeilennummer an                    


ich denke mal, dass dir das hilft.


AndyB - Sa 19.10.02 20:50

DeCodeGuru hat folgendes geschrieben:
der Wert in den [] gibt die Zeilennummer an

Wobei die 1. Zeile den Index 0 (Null) hat, die 2. den Index 1, ...


Bountyhunter - Sa 19.10.02 21:36

das wäre die lösung!
nur wenn ich PCHar(List[?]) schreibe, dann heisst es nur statement expected but expression of Pchar found egal wo ich den text hinschreibe.
wahrscheinlich hab ich da was falsch verstanden. also, was muss ich tun?
mfg
Bountyhunter


DeCodeGuru - Sa 19.10.02 21:42

wenn du mit CopyFile Dateien kopieren willst, könnteste das so machen (habe kein Delphi installiert :arrow: nicht getestet):


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  i: Integer;
begin
  for i := 0 to 9 do
  begin
    CopyFile(PChar(Liste[i]), 'C:\Temp\' + ExtractFileName(Liste[i]),False);
  end;
end;


Liste ist in dem Fall eine Stringlist mit Pfäden.

Müsste eigentlich funktionieren. Wenn nicht, frag nochmal oder sags mir :wink:


Bountyhunter - Sa 19.10.02 22:08
Titel: Danke!
ha!
danke, funzt super!!! ihr seit super!!! ein kleiner fehler war noch:

Quelltext
1:
CopyFile(PChar(Liste[i]), PChar('C:\Temp\' + ExtractFileName(Liste[i])),False);                    

ach ja, das würde ich auch ändern (aber das war ja auch unwichtig):

Quelltext
1:
for i := 0 to List.Count-1 do                    

mfg
Bountyhunter[/code]


DeCodeGuru - Sa 19.10.02 22:16

oh ja, das PChar beim zweiten Parameter hatte ich wirklich vergessen. :oops: Naja, hauptsache es funtzt jetzt :wink: