also warum es nur im selben Verzeichnis geht ... dat is einfach zu erklären
mit
ffile := ExtractFileName(ParamStr(1)); entfernst du die Verzeichnisangabe, weßhalb z.B.
AddSingleFile(ffile); nur den Dateinamen bekommt.
Daher wird die Datei im aktuellen Arbeitsverzeichnis gesucht wird, was bei dir rein zufällig das Programmverzeichnis (muß es aber nicht).
Ach ja, meckert Delphi bei dir nicht bei ArrayIndex?
> Variable kann nach Schleifendurchlauf undefiniert sein, oder so
Delphi-Quellcode:
var FileType: String;
ArrayIndex: Integer;
begin
if (ParamCount = 0) or not FileExists(ParamStr(1)) then exit;
FileType := LowerCase(Trim(ExtractFileExt(ParamStr(1))));
for ArrayIndex := 0 to 13 do
if FileExt[ArrayIndex] = FileType then
case ArrayIndex of
// Playlist
11: LoadFiles(LoadM3U(ParamStr(1)));
12: LoadFiles(LoadASX(ParamStr(1)));
13: LoadFiles(LoadDPL(ParamStr(1), nil));
// Audio/Video
else AddSingleFile(ParamStr(1));
end;
end;
Die
Exception könnte zwar irgendwie durch ArrayIndex (innerhalb des Case-Blocks) hervorgerufen werden, aber bei 'nem Integer un dieser unkion eigentlich nich möglich.
Bleibt noch die Möglichkeit, daß die
Exception in einer der verwendeten Funktionen/Prozeduren auftritt, z.B. wegen des fehlenden Pfades?
> LoadM3U, LoadASX, LoadDPL, LoadFiles und/oder AddSingleFile
hast schonmal das Programm im Debuger durchlaufen lassen?
unter Menü > Start > Parameter...
bei Parameter
Zitat:
"E:\Musik\irgendwas.ext"
eintragen und dann in Ruhe testen.