AW: Ini Datei wird nicht erstellt...
Zitat:
|
AW: Ini Datei wird nicht erstellt...
Zitat:
|
AW: Ini Datei wird nicht erstellt...
Zitat:
Na Ok.. Hier Dateien mit schreib und lese zugriffe sollten in einem Ordner abgelegt werden Wo die Zugriffsrechte auch vorhanden sind. Zitat:
gruss |
AW: Ini Datei wird nicht erstellt...
Hier habe ich zu den Schreibrechten auf den eigenen Ordner mal einen kleinen Artikel geschrieben:
http://www.entwickler-ecke.de/viewtopic.php?p=548600 |
AW: Ini Datei wird nicht erstellt...
Zitat:
die UAC habe ich ganz runtergefahren. Da gibt's nichts zu bestätigen. Dann:
Delphi-Quellcode:
Da wird dann der komplette Pfad angezeigt:
filename := extractfilepath(paramstr(0))+IniName + '.ini';
Label5.Caption:= filename; c:\users\XXXX\Dokuments\Borland Studio-Projekte\My_proggis\Raten-mit-IniFile\MyKreditInif.ini Die Funktion 'GetSpecialFolder' habe ich mal so getestet:
Delphi-Quellcode:
Da kriege ich den Pfad: C:\users\XXXX\Favorites
MessageDlg (GetSpecialFolder (CSIDL_APPDATA), mtInformation, [mbOK], 0);
Und in der LeseIni:
Delphi-Quellcode:
kriege ich den Pfad: C:\Users\XXXX\AppData\Roaming\MyKreditInif.ini
procedure TForm1.leseIni(IniName:string);
var ini:TIniFile; filename: String; begin filename:=GetSpecialFolder(CSIDL_APPDATA)+'\'+Ininame+ '.ini'; Label5.Caption:=filename; ini := TIniFile.Create(filename); ... Aber die Variablen bleiben leer, es wird nichts eingelesen. Also was mache ich da noch falsch? |
AW: Ini Datei wird nicht erstellt...
Ist zwar schon uralt und ich nutze inzwischen neuere Versionen, aber hier meine alten EasyIniAppExe, EasyIniAppDataExe und EasyRegAppExe. Zu gebrauchen für schnelles speichern. Nachteil, nichts für große Mengen und es gibt immer nur eine Ini pro Unit. Vorteil, man muss sich nicht um den Speicherort kümmern und allein durch den Tausch der Unit kann man entscheiden wo die Infos landen - in der Ini im Programmordner, in Appdata Ordner oder in der Registry.
|
AW: Ini Datei wird nicht erstellt...
Weil du (angeblich) nach Favorites schreibst und von Data\Roaming\ liest?
Verwende eventl. $001A (= CSIDL_APPDATA) satt der unterschiedlichen CSIDL Konstanten? BTW, es gibt auch TIniFile.ReadFloat und in der SysUtils StrToFloat, StrToFloatDef, TryStrToFloat ect. |
AW: Ini Datei wird nicht erstellt...
Zitat:
Zitat:
Ist der Übergebene Dateiname bei erzeugeIni(IniName:string); und leseIni(IniName:string); identisch (Tipfehler?) Wenn das Programm später mal unter C:\Programme... installiert werden soll, musst du natürlich unbedingt den Speicherort der Ini nach CSIDL_APPDATA legen. |
AW: Ini Datei wird nicht erstellt...
Zitat:
Nur das war niemanden vorher bekannt. Zitat:
Aber sorry wenn man es macht dann direkt richtig von Anfang an. Denn er wird mit Sicherheit seine Programme nicht immer im "Borland Studio-Projekte" Pfad ablegen. Dein Ratschlag ist also nicht zu empfehlen! gruss |
AW: Ini Datei wird nicht erstellt...
Das Problem ist mit drei kleinen Änderungen für immer lösbar:
Delphi-Quellcode:
Delphi bietet für Ini auf Registry Umsteiger eine einfache Lösung. Einzig die Unit und Klasse wechseln, der Rest kann bleiben. Das Ergebnis landet in der Registry unter HKCU\Software\MyKredinif\...
uses
Registry; //<<<<<< IniFiles gegen Registry tauschen procedure TForm1.erzeugeIni(IniName:string); var ini: TRegIniFile; //<<<<<< TIniFile gegen TRegIniFile tauschen begin ini := TRegIniFile.Create('Software\' + IniName); //<<<<<< TIniFile gegen TRegIniFile tauschen // INI-Datei erstellen (falls nicht vorhanden) und initialisieren try ini.WriteString('Sektion1', 'Eigenschaft1', 'Dein String'); // String in Sektion1 unter Eigenschaft1 abspeichern ini.WriteInteger('Sektion2', 'Eigenschaft1', 1234); // Integerwert in Sektion2 unter Eigenschaft1 abspeichern ini.WriteBool('Sektion2', 'Eigenschaft2', True); // Wert vom Typ Boolean abspeichern finally ini.Free; // Variable ini wieder freigeben end; end; procedure TForm1.Button1Click(Sender: TObject); begin erzeugeIni('MyKredinif'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz