Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Stammverzeichnis ändern? (https://www.delphipraxis.net/172208-stammverzeichnis-aendern.html)

SmokyDieter 18. Dez 2012 19:39

Stammverzeichnis ändern?
 
Also, habe folgendes Problem:

programmiere einen mp3 - Player für die schule; fürs auslesen der id3 Tag benutze ich mp3fileutils.

Nun habe ich das problem, dass immer, wenn man die procedure ausführt, die neue mp3 dateien zur bibiothek hinzufügt und auch gleich die id3 tags ausliiest, delphi zum beispiel den assignfile befehl nicht mehr korrekt ausführt und die file, die er erstellen soll, nicht mehr im stammverzeichnis (so nennt man doch das verzeichnis in dem sich die exe befindet, oder? ;) ), sondern in dem verzeichnis erstellt, aus dem man kurz zuvor die dateien eingelesen hat... auch die procedure, die im stammverzeichnis nach den playlistdateien sucht, funktioniert nicht mehr...

kann mir jemand so helfen, oder braucht ihr dafür den code??

liebe grüße und schon mal dankeschön im voraus

Dieter :D

RWarnecke 18. Dez 2012 19:43

AW: Stammverzeichnis ändern?
 
Hallo und willkommen in der :dp:,

ein bisschen Quelltext wäre nicht schlecht. Hast Du denn mal die Pfade überprüft, wo etwas hingeschrieben wird oder gelesen wird ? Das Verzeichnis wo die EXE liegt ermittelst Du mit
Delphi-Quellcode:
ExtractFilePath(Application.ExeName)

Popov 18. Dez 2012 20:03

AW: Stammverzeichnis ändern?
 
@Smoky

Evtl. suchst du GetCurrentDir zum auslesen und SetCurrentDir() zum setzten des aktuellen Verzeichnisses. Man kann das nutzen, macht wohl aber kaum einer. Besser ist der Tipp von RWarnecke, denn man weiß nicht wer mal gerade das aktuelle Verzeichnis wechselt. Packe also immer den Pfad vor den Dateinamen, dann gibt es kaum Probleme.

SmokyDieter 18. Dez 2012 20:11

AW: Stammverzeichnis ändern?
 
ok, vielen dank schonmal für die antwort, und hier der code:

for i := 0 to (opendialog.files.count -1) do
begin

stream := TFileStream.Create(Opendialog.Files[i], fmOpenRead or fmShareDenyWrite);
Id3v2Tag.ReadFromStream(stream);

if Not Id3v2Tag.exists then stream.Seek(0, soFromBeginning)
else stream.Seek(Id3v2Tag.size, soFromBeginning);

MpegInfo.LoadFromStream(Stream);
Id3v1Tag.ReadFromStream(stream);
stream.free;

Title := ID3v1Tag.Title;
Artist := ID3v1Tag.Artist;
Album := ID3v1Tag.Album;
Genre := ID3v1Tag.Genre;
Duration := MPegInfo.Duration;
Year := ID3v1Tag.Year;

path := opendialog.Files[i];



save(path, Title, Artist, Album, Genre, Year, Duration);
end;

danach treten die genannten probleme auf: assignfile(playlistdata, 'playlist1.lst'); rewrite(playlistdata); führt also zum beispiel nicht mehr wie gewünscht dazu, dass im verzeichnis, in dem auch die exe liegt, eine entsprechende datei erzeugt wird, sondern die datei befindet sich dann in dem verzeichnis, aus dem der opendialog seine files geladen hat...

einige der funktionen befinden sich in einer extra unit, soll ich die alle raussuchen und mit reinposten?

danke schonmal :D

Dieter

SmokyDieter 18. Dez 2012 20:16

AW: Stammverzeichnis ändern?
 
ok, vielen dank popov, ich werds bei ze8ten mal ausprobieren :D
danke für die schnelle hilfe

Grüße, Dieter


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