![]() |
AW: Ini Datei wird nicht erstellt...
Zitat:
|
AW: Ini Datei wird nicht erstellt...
Zitat:
|
AW: Ini Datei wird nicht erstellt...
Zitat:
Na Ok.. ![]() 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:
![]() |
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
![]() |
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 21:27 Uhr. |
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-2025 by Thomas Breitkreuz