Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Inifile Problem (https://www.delphipraxis.net/184172-inifile-problem.html)

Medium 6. Mär 2015 13:47

AW: Inifile Problem
 
Ich vermute nach wie vor hier den zumindest ersten Fehler, zumal der TE bisher nicht weiter darauf einging, abgesehen von der richtigen Änderung zu "-Dir" statt "-Path" in diesem Fall:
Delphi-Quellcode:
  dir:=GetApplicationDirectory+n;
  Ini:=TIniFile.Create(dir+'\'+n+'.ini');
Mal in Prosa. GetApplicationDirectory() liefert vermutlich etwas dieser Art zurück:
C:\Projekte\MeinProgramm

Jetzt wird "n" dazu gepackt. Angenommen n = 'Hallo':
C:\Projekte\MeinProgrammHallo

Dann wird ein '\' und nochmals "n" sowie '.ini' drangehängt:
C:\Projekte\MeinProgrammHallo\Hallo.ini

SOLL DAS "HALLO" WIRKLICH AN DAS VERZEICHNIS GEPACKT WERDEN, TE!? Weil es wirkt auf mich so, als wäre das eine sehr seltsame Struktur.

Sir Rufo 6. Mär 2015 13:58

AW: Inifile Problem
 
@Medium

Du nimmst falsch an, denn in dem Quelltext vom TE steht
Delphi-Quellcode:
function GetApplicationDirectory: string;
begin
  GetApplicationDirectory := ExtractFilePath(ParamStr(0));
end;
Also wird dort etwas in der Art zurückgeliefert
Code:
C:\Foo\Blup\App\
Jetzt wird dort der Name angehängt
Delphi-Quellcode:
  dir:=GetApplicationDirectory + n;
  Ini:=TIniFile.Create( dir + '\' + n + '.ini' );
und wir erhalten
Code:
n => 'bmifoo'

dir => 'C:\Foo\Blup\App\bmifoo'
inifile => 'C:\Foo\Blup\App\bmifoo\bmifoo.ini'

himitsu 6. Mär 2015 14:24

AW: Inifile Problem
 
Zitat:

Zitat von Sir Rufo (Beitrag 1292639)
@Medium

Du nimmst falsch an, denn in dem Quelltext vom TE steht ...

Drum kam auch was von mir :angle2:

Zitat:

Zitat von himitsu (Beitrag 1292525)
Warum gibt GetApplicationDirectory den Path und nicht das Directory zurück?

Dir = ohne abschließendes \
Path = mit



Und für aktuellere Delphis: Delphi-Referenz durchsuchenTPath.Combine


Medium 6. Mär 2015 15:13

AW: Inifile Problem
 
Huaaaaaa, ich habe da doch echt ExtractFileDir() gelesen in seinem aktuellsten Schnipsel. Gut, dass gleich Wochenende ist. :stupid:
Nichtsdestotrotz bin ich nach wie vor skeptisch. Vor allem, weil TIniFile.Create() keine Exception auslöst, wenn man einen nicht existenten Pfad angibt. Vielleicht wäre es zum Testen vorläufig besser, wenn man den kompletten absoluten Pfad zu der INI als String am Stück im Code nimmt. Einfach um wirklich gaaaaanz sicher zu sein, dass da auch wirklich etwas gelesen werden kann. (Bisher haben wir ja nichtmal eine Bestätigung, dass die Schleifen überhaupt durchlaufen. Oder ob sl.Count beim Durchsteppen wirklich >0 ist. Ich glaube irgendwie noch nicht so recht, dass da überhaupt eine INI mit Inhalt geöffnet wird.

himitsu 6. Mär 2015 15:29

AW: Inifile Problem
 
Zitat:

Nichtsdestotrotz bin ich nach wie vor skeptisch.
Ich nicht, denn ich weiß warum das so ist. :angle:

Schau dir mal an was für eine API verwendet wird ... die öffnet für jeden einzelnen Value-Zugriff die INI, liest sie neu ein, ändert den Wert und speichert alles.
MSDN-Library durchsuchenWritePrivateProfileString
Wenn nichts im Contructor gemacht wird, außer sich den Dateinamen in einer Variable zu merken ... wo soll denn da ie Exception/Fehlerprüfung her kommen? :zwinker:

Delphi-Referenz durchsuchenTMemIniFile

Medium 6. Mär 2015 16:49

AW: Inifile Problem
 
Es wäre halt so unglaublich simpel, dies als Fehlerquelle ein für alle Male auszuschließen. Keine Minute Arbeit. Ich habe daher keine Lust mehr darüber zu streiten. Wenn der TE Bock hat, macht er's, wenn nicht dann nicht. Mir langsam pupsegal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz