![]() |
AW: Ini Datei wird nicht erstellt...
Zitat:
Man hat doch deutlich gesehen, dass der TE Probleme hat, eine Ini zu schreiben und wieder daraus zu lesen. Dann kam der Hinweis auf auf CSIDL_APPDATA und UAC und er hat sich in den Verzeichnissen verzettelt mit Favorites und Data\Roaming, obwohl die Schreibrechte ja nicht das Problem sind. Deshalb jetzt mein Vorschlag, erstmal das Lesen/ Schreiben der ini in den Griff zu bekommen und dann die funktionierende Ini nach CSIDL_APPDATA zu verschieben. Ein Schritt nach dem anderen. Ich löse ungern zwei Probleme gleichzeitig. Das die Ini letztendlich nicht ins Programmverzeichnis gehört, ist unstrittig, das habe ich ja auch geschrieben. |
AW: Ini Datei wird nicht erstellt...
Und TRegIniFile kann auch nicht der Königsweg sein: zum Einen hatten wir vor Jahren mal einen Thread, der sich mit dieser Klasse auseinandersetzte und zu keinem wirklich positiven Ergebnis kam und zum Anderen hat man bei mobilen Anwendungen (die man z.B. auf dem USB-Stick mitnimmt) das Problem, dass man auf einem Rechner die Registry beschreibt und auf einem anderen die gespeicherten Einstellungen nicht zur Verfügung hat.
|
AW: Ini Datei wird nicht erstellt...
Ich nutze die TRegIniFile schon seit Jahren, in zig Programmen um meine Einstellungen zu speichern, ohne je ein Problem damit gehabt zu haben.
Natürlich ist die Registry mit der TRegIniFile nur eingeschränkt nutzbar, bzw. nur der HKCU Teil. Auch ist die TRegIniFile der einfache Weg schnell von der Ini-Datei auf Reg zu wechseln. Das ist eben der Vorteil der TRegIniFile. Will man mehr, muss man die TRegistry nehmen. Sie ist mächtiger, dafür aber auch komplexer. Will man es einfach wie mit der Ini haben, reicht die TRegIniFile. |
AW: Ini Datei wird nicht erstellt...
Zitat:
a) die Programmdaten sind benutzerspezifisch (Benutzer\xxxx\AppData) b) die Programmdaten sid rechnerspezifisch (Benutzer\default\Appdata) c) die Programmdaten sind unabhängig (Netzlaufwerk) d) Programm(daten)Verzeichnis auf einem Stick (Wobei je nach Konfiguration die Verzeichnisnamen abweichen können.) Irgendetwas klemmt immer, da gibt es keinen Königsweg, es sei denn, Du bastelst Dir etwas eigenes z.B. c:\MeinProgramm\benutzer1\Meine.INI Da könnte es allerdings Ärger mit dem Admin geben. Gruß K-H |
AW: Ini Datei wird nicht erstellt...
Für a) und b) gibt es ja vorgesehene Verzeichnisse (CSIDL_APPDATA bzw. CSIDL_COMMON_APPDATA). Und man kann ja auch eine Option anbieten, ob "normal" installiert oder mobil genutzt werden soll, was sich dann auf den Speicherort auswirkt. c) dürfte eher nicht dem Regelfall entsprechen und dann hat man ja ggf. noch eine Datenbank, wo man auch Einstellungen hinterlegen könnte. Mir ging es auch mehr um die Behauptung, dass ein Wechsel von TIniFile zu TRegIniFile alle Probleme der Welt lösen soll.
|
AW: Ini Datei wird nicht erstellt...
Die Probleme der Welt sicherlich nicht, aber die Probleme aus dem Beitrag #1.
Wie gesagt, wenn es nur drum geht Einstellungen zu speichern, dann mache ich mir keinen Stress mit der TRegistry. Sorry, aber wenn ich mir manchmal hier Beispiele angucke und wie einige hier, nur um in der HKCU etwas zu speichern mit OpenKey und CloseKey usw. hantieren, dann frage ich mich wozu? Ich meine, wenn ich ein String brauche, kann ich einen String nehmen. Ich kann mir aber auch eine Klasse dafür erstellen. Komplizierter geht immer. Und das Andere? Ich hab meinen Königsweg gefunden. Solange es nur um Einstellungen geht, geht alles bei mir über eine von drei Units. Je nachdem welche ich nehme, landen die Daten da wo ich will. |
AW: Ini Datei wird nicht erstellt...
Zitat:
|
AW: Ini Datei wird nicht erstellt...
Vielleicht sollte man sich auch mal um die TForm1.leseIni kümmern, die kann ja wohl kaum so bleiben?
Schlage folgendes vor:
Delphi-Quellcode:
TKreditRahmen = record
private FKreditSummme: double; FRatenAnzahl: double; FRatenAnzahlung: double; FRestSummme: double; FSonderRate: double; public property KreditSummme: double read FKreditSummme write FKreditSummme; property RatenAnzahl: double read FRatenAnzahl write FRatenAnzahl; property RatenAnzahlung: double read FRatenAnzahlung write FRatenAnzahlung; property RestSummme: double read FRestSummme write FRestSummme; property SonderRate: double read FSonderRate write FSonderRate; procedure LoadFromIniFile(const FileName, Section: string); procedure SaveToIniFile(const FileName, Section: string); procedure Clear; end; |
AW: Ini Datei wird nicht erstellt...
Zitat:
![]() Die sind allerdings mittlerweile veraltet, mit heutigen Delphiversionen ließe sich das viel schöner umsetzen. Ich werde aber kaum in absehbarer Zeit daran etwas ändern können. Die Idee dahinter passt aber nach wie vor: Einfach an allen Stellen suchen, aber dem Benutzer die Wahl lassen, wenn er das möchte. |
AW: Ini Datei wird nicht erstellt...
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 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