Liebe Gäste des Forums
Danke, dass ihr euch hier auf dem inoffiziellen Windev-Forum umschaut. Hier werden Tipps und Hinweise zu der von PC-Soft angebotenen Software Windev besprochen.
Windev ist eine leistungsstarke, sehr umfangreiche Entwicklersoftware für Webseiten, Handys und Rechner verschiedener Betriebssysteme. Mehr unter http://www.windev.com

Vorsicht bei INIRead()!

Gelöstes und einfache Beispiele
Antworten
Benutzeravatar
klammerauf
Member
Beiträge: 112
Registriert: 28. November 2010, 15:11
Wohnort: bei Karlsruhe
Kontaktdaten:

Vorsicht bei INIRead()!

Beitrag von klammerauf » 11. Januar 2012, 12:38

Man stelle sich folgenden Code vor:

Code: Alles auswählen

MyIniFile = "stapauf.ini"
IF fFileExist(MyIniFile)
   sErgebnis = INIRead("Sektion","Keyword","",MyIniFile)
END
Es ist eigentlich ganz egal, was in INIRead abgefragt wird, es wird nie etwas gefunden! Und das, obwohl die Datei ja definitiv existiert.

Der Grund dafür liegt in MyIniFile. Hier der ausschlaggebende Part in der Doku:
If only the name of the file is specified, the specified file will be sought in the directory of Windows.
Die Lösung für dieses Problem geht dann so:

Code: Alles auswählen

MyIniFile = ".\stapauf.ini"
Also immer den ganzen Pfad mit angeben. Sonst wird hier nie was gefunden!

Um Probleme mit UAC unter Vista und Win7 zu vermeiden empfehle ich aber eher, die Datei im Verzeichnis SysDir(srCommonAppData) (alle Benutzer) oder SysDir(srAppData) (nur aktueller Benutzer) abzulegen.

Also so:

Code: Alles auswählen

MyIniFile = SysDir(srAppData) + ["\"] + "stapauf\stapauf.ini"
Sebastian
--
http://arnoldconsult.de
WinDev 21 mit Oracle und MySQL, WinDevMobile Android Apps und Motorola Windows CE Mobile Barcode Scanners, Python 3 mit Oracle, SQLite und MySQL

Lewi
Member
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Kontaktdaten:

Re: Vorsicht bei INIRead()!

Beitrag von Lewi » 13. Januar 2012, 10:39

Oder alternativ die Ini-Datei ins Verzeichnis der Programm-EXe zu legen, in der sich die Anwednung befindet mit Zugiff auf das Ini-File über :

MyIniFile = CompleteDir(fExeDir())+ "Prog.ini"

Benutzeravatar
klammerauf
Member
Beiträge: 112
Registriert: 28. November 2010, 15:11
Wohnort: bei Karlsruhe
Kontaktdaten:

Re: Vorsicht bei INIRead()!

Beitrag von klammerauf » 13. Januar 2012, 10:43

Nö. Genau das erwähnte UAC wird Zugriffe darauf zu verhindern wissen. Schau dir mal die Hilfe zu INIWrite an, da ist das ganz gut beschrieben.

Sebastian
--
http://arnoldconsult.de
WinDev 21 mit Oracle und MySQL, WinDevMobile Android Apps und Motorola Windows CE Mobile Barcode Scanners, Python 3 mit Oracle, SQLite und MySQL

Lewi
Member
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Kontaktdaten:

Re: Vorsicht bei INIRead()!

Beitrag von Lewi » 13. Januar 2012, 10:57

Ja und nein. Wenn die Exe nicht in einem WIndows-Verzeichnis liegt, dass der speziellen Rechteverwaltung unterliegt (wie.z.B: "d:\Anwendung"), dann gibt es keine Probleme. Jedenfalls bei mit unter XP. Vista und Win 7.

Antworten