Site Announcements

Liebe Gäste des Forums, wir freuen uns, dass ihr zu uns gelangt seid.
Windev ist eine sehr umfangreiche und starke Entwicklerumgebung für Anwendungen unter Windows, Linux und Internetapplikationen inkl. Mobile.
Hier sind Antworten und Anregungen dazu zu finden!
Möchtest du aktiv mitschreiben? Dann melde dich durch Klick auf den Text "Registrieren" hier rechts oberhalb an.

Vorsicht bei INIRead()!

Gelöstes und einfache Beispiele

Vorsicht bei INIRead()!

Beitragvon 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

For this message the author klammerauf has received thanks:
Herbert (12. Januar 2012, 09:05)
Rating: 100%
 
klammerauf
Member
 
Beiträge: 111
Registriert: 28. November 2010, 15:11
Wohnort: bei Karlsruhe
Has thanked: 4 times
Have thanks: 2 times

Re: Vorsicht bei INIRead()!

Beitragvon 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"
Lewi
Member
 
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Has thanked: 0 time
Have thanks: 1 time

Re: Vorsicht bei INIRead()!

Beitragvon 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
klammerauf
Member
 
Beiträge: 111
Registriert: 28. November 2010, 15:11
Wohnort: bei Karlsruhe
Has thanked: 4 times
Have thanks: 2 times

Re: Vorsicht bei INIRead()!

Beitragvon 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.
Lewi
Member
 
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Has thanked: 0 time
Have thanks: 1 time


Zurück zu Basics

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron