AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Dateien aus Ordner laden problematisch

Ein Thema von Lucifer · begonnen am 22. Jun 2008 · letzter Beitrag vom 23. Jun 2008
Antwort Antwort
Benutzerbild von Lucifer
Lucifer

Registriert seit: 29. Mär 2007
62 Beiträge
 
#1

Dateien aus Ordner laden problematisch

  Alt 22. Jun 2008, 02:09
Hallo



Also mein Programm ladet Dateien aus verschiedenen Ordner.
Nun das Problem ist wo der Aktuelle Ordner ist.

Delphi-Quellcode:
  MapsDir='.\Maps\';
  DBDir='.\DB\';
  SaveDir='.\Savegame\';
  MusicDir='.\Music\';
  ItemsDir='.\Items\';
Ich hab in Variabeln stehen wo welche Dateien zu finden sind.

Das Problem ist wenn ich nach einem OpenDialog oder SaveDialog Execute nicht mehr im Ordner des Projectes bin
Zitat:
C:\Programme\Borland\Delphi7\Projects\Mover
Dann benutzt er den Ordner in welchem ich als letztes mit den beiden Dialogen etwas geladen oder gespeichert habe als Aktueller Ordner.

Und dann bekomm ich Fehlermeldungen dass er die Dateien nicht findet.

Dies ist unerwünscht.

Wie kann man sowas umgehen?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.262 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Dateien aus Ordner laden problematisch

  Alt 22. Jun 2008, 03:19
Moin Lucifer,

da sehe ich grundsätzlich zwei Möglichkeiten:
  1. Die Dialoge bieten die Option NoChangeDir, mit der sich das wechseln des Pfades vermeiden lassen sollte.
  2. Keine relativen Pfade verwenden.

Ich bevorzuge Variante 2, da man dann immer genau nachvollziehen kann, worauf zugegriffen wird.
Man muss halt nur immer den Basispfad davorschreiben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
michaelg

Registriert seit: 20. Apr 2008
34 Beiträge
 
#3

Re: Dateien aus Ordner laden problematisch

  Alt 22. Jun 2008, 03:26
Du könntest Dir Deinen Exe-Pfad hinterher wieder setzen, egal wo Du mit dem Öffnendialog warst.

Delphi-Quellcode:
procedure TForm1.btnOpenClick(Sender: TObject);
begin
  OpenDlg.InitialDir:='c:\temp';
  if OpenDlg.Execute then begin
    //MachIrgendwas;
  end;
  chDir(ExtractFilePath(paramstr(0)));
end;
Mit OpenDlg.InitialDir gibst Du einen Pfad an, in dem der Öffnen-Dialog schon stehen soll, wenn er geöffnet wird.

ExtractFilePath gibt das Verzeichnis Deiner Exe zurück, paramstr(0) ist der Programmname inklusive Pfadangabe.
Mit chDir wechselst Du das Verzeichnis.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
36.984 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Dateien aus Ordner laden problematisch

  Alt 22. Jun 2008, 14:09
Zitat von Lucifer:
Das Problem ist wenn ich nach einem OpenDialog oder SaveDialog Execute nicht mehr im Ordner des Projectes bin
Zitat:
C:\Programme\Borland\Delphi7\Projects\Mover
Dann benutzt er den Ordner in welchem ich als letztes mit den beiden Dialogen etwas geladen oder gespeichert habe als Aktueller Ordner.
Weil du relative Pfade benutzt und das so0llte man eben genau aus diesem Grund nicht machen.

Zitat:
Wie kann man sowas umgehen?
In dem du absolute Pfade benutzt. Mit ParamStr(0) bekommst du den Pfad zu deine Anwendung und mit ExtractFilepath das Verzeichnis deiner Anwendung.

@Christian und michaelg: Warum solche Krücken? Warum nicht gleich richtig machen? Oftmals ist es so, dass man aus dem Ordner noch mal eine Datei öffnen will oder sie dort wieder abspeichern will und dann finde ich es absolut nervig, wenn ich mich wieder bis in den Ordner durchklicken muss.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.262 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Dateien aus Ordner laden problematisch

  Alt 22. Jun 2008, 14:42
Moin Michael,

dann sieh Dir bitte mal meinen Punkt 2 an
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
36.984 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Dateien aus Ordner laden problematisch

  Alt 22. Jun 2008, 15:19
Ok, aber das du Punkt eins erst vorschlägst, wundert mich eigentlich ziemlich.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.262 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Dateien aus Ordner laden problematisch

  Alt 22. Jun 2008, 15:22
Moin Michael,

Zitat von Luckie:
Ok, aber das du Punkt eins erst vorschlägst, wundert mich eigentlich ziemlich.
Zitat von Christian Seehase:
Ich bevorzuge Variante 2 ...
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
36.984 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Dateien aus Ordner laden problematisch

  Alt 22. Jun 2008, 15:24
Ich bin noch etwas durch den Wind. Eben hat es hier einen sehr heftigen Schauer gegeben und ich musste schnell die Balkontür zu machen.
























Leider habe ich vergessen, dass unser Kaninchen noch draussen saß. Das musste ich eben mal schnell retten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
michaelg

Registriert seit: 20. Apr 2008
34 Beiträge
 
#9

Re: Dateien aus Ordner laden problematisch

  Alt 23. Jun 2008, 00:47
Hi Luckie,

mein Beispiel war ne Krücke, na gut. Aber mit paramstr den aufrufenden Pfad festzustellen finde ich in Ordnung. Dann also so:

Delphi-Quellcode:

procedure InitPfade;
var
  ExePfad:String;
begin
  ExePfad:=ExtractFilePath(paramstr(0));
  MapsDir:=ExePfad+'Maps\';
  DBDir:=ExePfad+'DB\';
end;
So ist es auf jeden Fall egal, was man mit dem Opendialog angestellt hat.
  Mit Zitat antworten Zitat
Benutzerbild von Lucifer
Lucifer

Registriert seit: 29. Mär 2007
62 Beiträge
 
#10

Re: Dateien aus Ordner laden problematisch

  Alt 23. Jun 2008, 01:45
Ich habs einfach mal so gemacht

Delphi-Quellcode:
exe:=Application.ExeName;
  exe:=ExtractFilePath(exe);
  SetCurrentDir(exe);
und dann einfach die NoChangeDirs eingeschaltet.
Bis jetzt hatt es gut geklappt.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf