Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Mediaplayer Pfad verloren (https://www.delphipraxis.net/66685-mediaplayer-pfad-verloren.html)

Nessalio 2. Apr 2006 16:58


Mediaplayer Pfad verloren
 
Vielleicht klingt die Frage ein wenig zu einfach:
Ich habe auf einem PC ein Programm geschrieben, dass einen Sound aus dem Project-Ordner verwendet, und diesen mit dem Mediaplayer abspielt.
Starte ich das Programm auf einem anderen PC, startet das Programm mit einer Fehlermeldung, weil die Sounddatei unter einem anderen Ordnerbaum liegt.
Wie kann ich das ändern?
Kann man Delphi sagen, dass die Sounddatei immer in dem Ordner des Programmes liegt?
Vielen Dank schonmal für die Antworten!

Jarmen_Kell 2. Apr 2006 17:18

Re: Mediaplayer Pfad verloren
 
Klar, kann man machen :)

Mediaplayer.FileName:=ExtractFilePath(Application. Exename)+'Dateiname';

Das erste liefert den Pfad des Programmes und das 2. ist eben der Name der Sounddatei.

Nessalio 2. Apr 2006 18:16

Re: Mediaplayer Pfad verloren
 
Thx!
Aber kann man Delphi auch nach der Datei suchen lassen, wenn sie z.b. auf der Festplatte liegt?

Martin K 2. Apr 2006 18:30

Re: Mediaplayer Pfad verloren
 
Na klar, wenn du weißt wie die Datei heißt.

Such doch mal unter folgenden Stichworten:
TSearchRec; FindFirst, FindNext, FindClose

Martin K 2. Apr 2006 18:50

Re: Mediaplayer Pfad verloren
 
So, hab grad einen Code gebastelt, der wohl so manchen weiterhelfen wird:

in FileName gibt man den Dateinamen der Datei an, nach der man suchen will (Bitte nur den Dateinamen, ohne Pfad!!!).
in Path wird dann der Ordner angegeben, in dem die Suche gestartet werden soll (z.B. 'C:\' für die gesamte Festplatte).
Die Funktion durchsucht zunächst im angegeben Ordner nach der Datei. Ist sie dort nicht vorhanden, werden alle Unterorder rekursiv nach der Datei durchsucht.

Als Ergebnis liefert die Funktion den kompletten Pfad der Datei mit dem Dateinamen.
Es wird immer die zuerst gefundene Datei zurückgegeben.
Konnte die Datei nicht gefunden werden, wird '' zurückgegeben.

Beispiel für einen Aufruf der Funtion:
ShowMessage(Find('test.txt','C:\'));

Delphi-Quellcode:
function Find(FileName: String; Path: String): String;
var SR: TSearchRec;
begin
  If FindFirst(Path+FileName, faAnyFile-faDirectory, SR)=0 then
  begin
    Result := Path+SR.Name;
    FindClose(SR);
  end
  else
  If FindFirst(Path+'*.*', faAnyFile, SR)=0 then
  begin
    Repeat
      If (SR.Name<>'.') and (SR.Name<>'..') then
        Result := Find(FileName, Path+SR.Name+'\');
    Until (FindNext(SR)<>0) or (Result<>'');
    FindClose(SR);
  end
  else
    Result := '';
end;

Nessalio 3. Apr 2006 12:16

Re: Mediaplayer Pfad verloren
 
Herzlichen Dank!
Hab ihn ein wenig geändert, aber er funktoniert!
Wirklich, Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 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