| Autor |
Beitrag |
anno2007
      
Beiträge: 68
Win 7, Ubuntu
Delphi XE
|
Verfasst: Sa 21.03.09 17:04
Hi,
Ich habe einen Ordner, in dem sich alle Dateien befinden (Bilder usw...). Ich möchte aus diesem Ordner eine INI-Datei auslesen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| uses IniFiles;
procedure TForm1.FormShow(Sender: TObject); var ini: TIniFile; begin ini:=TIniFile.Create('konfig.ini'); try form1.left:=ini.ReadInteger('Fensterposition','Left',0); form1.top:=ini.ReadInteger('Fensterposition','Top',0); finally ini.free; end; end; |
(Beispielcode von www.delphi-treff.de/...ini-dateien/page/4/).
Da benutzen sie keinen Pfad: ini:=TIniFile.Create( 'konfig.ini');
Das funktioniert bei mir allerdings nicht, ich muss immer den ganzen Pfad mit angeben, sonst gibt er mir zurück, dass die Datei nicht gefunden wurde. Wie kann ich das ändern?
Danke,
anno2007
|
|
Gausi
      
Beiträge: 8553
Erhaltene Danke: 479
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Sa 21.03.09 17:08
Gib den ganzen Pfad an. Das sollte man immer tun. Wenn du den Ordner deiner Anwendung bestimmen willst, um die Ini auch auf anderen Systemen zu finden: ExtractFileDir(ParamStr(0));
_________________ We are, we were and will not be.
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit, Win 10, Win 11
BDS 2006, RAD Studio 2009+C++, Delphi 13, VS 2010 Prof.
|
Verfasst: Sa 21.03.09 17:16
Hallo anno2007,
ich würde allerdings den Anwendungsordner dafür verwenden.
Bis bald Chemiker
|
|
anno2007 
      
Beiträge: 68
Win 7, Ubuntu
Delphi XE
|
Verfasst: Sa 21.03.09 17:18
@Gausi, du meinst also immer so:
Delphi-Quelltext 1: 2:
| path := ExtractFileDir(ParamStr(0)); playfield.picture.LoadFromFile(path + '\Spielfeld.bmp'); |
Funktioniert perfekt, ich danke  .
@Chemiker, wie meinst du das?
anno2007
|
|
jaenicke
      
Beiträge: 19336
Erhaltene Danke: 1751
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 21.03.09 17:23
anno2007 hat folgendes geschrieben : | | @Chemiker, wie meinst du das? |
Er meint das Anwendungsdatenverzeichnis. Denn in dem Verzeichnis, in dem deine Exe liegt (normalerweise ja irgendwo unter c:\programme), hast du normalerweise keine Schreibrechte. Deshalb wirst du dann Fehler bekommen, wenn du versuchst dort deine Ini zu speichern.
www.delphi-library.d...ewtopic.php?p=548600
Bei einer portablen Anwendung ist so etwas natürlich richtig, aber bei einer installierten nicht. Am besten ist es, es dem Benutzer zu überlassen und z.B. zuerst im eigenen Verzeichnis und sonst im Anwendungsdatenverzeichnis zu schauen.
Liegt an beiden Orten keine INI, dann kann man ja den Benutzer fragen wo sie hin soll.
|
|
anno2007 
      
Beiträge: 68
Win 7, Ubuntu
Delphi XE
|
Verfasst: Sa 21.03.09 17:25
Die INI ist nur dafür da, um ausgelesen zu werden.
Ist das dann so ok, oder bietet es sich an vielleicht eine bessere Datenstruktur zu nehmen.
Ich kenne bis jetzt nur INIs.
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit, Win 10, Win 11
BDS 2006, RAD Studio 2009+C++, Delphi 13, VS 2010 Prof.
|
Verfasst: Sa 21.03.09 17:28
Hallo anno2007,
ganz einfach, Du wirst unter einem eingeschränkten Benutzerkonto Schwierigkeiten bekommen die Datei abzuspeichern.
Der beste Platz für INI-Dateien ist unter:
\Dokumente und Einstellungen\User\Anwendungsdaten
Bis bald Chemiker
|
|
jaenicke
      
Beiträge: 19336
Erhaltene Danke: 1751
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 21.03.09 17:46
anno2007 hat folgendes geschrieben : | Die INI ist nur dafür da, um ausgelesen zu werden.
Ist das dann so ok, oder bietet es sich an vielleicht eine bessere Datenstruktur zu nehmen.
Ich kenne bis jetzt nur INIs. |
Das hat nichts mit INI oder nicht INI zu tun, nur mit dem Verzeichnis.
Wenn die INI nur gelesen, aber nicht geschrieben wird, dann ist das Verzeichnis der Exe vollkommen in Ordnung. Du solltest nur nicht versuchen in dieses zu schreiben.
|
|
anno2007 
      
Beiträge: 68
Win 7, Ubuntu
Delphi XE
|
Verfasst: Sa 21.03.09 19:03
Ja, das das nix mit der INI zu un hat ist klar  .
Ich wollte nur generell wissen, ob es eine Datenstruktur gibt, die ich besser verwendet hätte.
Allerdings hab ich die INI jetzt schon komplett eingebaut und werde nichts mehr ändern dadran, weil es so gut funktioniert  .
Dann bedanke ich mich nochmal bei allen die mir geholfen haben  .
anno2007
|
|
|