Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [Delphi 2007] Wo INI Dateien unter Vista speichern ? (https://www.delphipraxis.net/107208-%5Bdelphi-2007%5D-wo-ini-dateien-unter-vista-speichern.html)

Luckie 24. Jan 2008 08:32

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Zitat:

Zitat von Phoenix
Man sollte keine INI-Dateien mehr benutzen.

Wer sagt das und warum nicht?

hitzi 24. Jan 2008 08:35

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Hier stehen ein paar Gründe: http://blogs.msdn.com/oldnewthing/ar...6/6523907.aspx

messie 24. Jan 2008 09:28

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Zitat:

INI files don't support Unicode.
Nö, ich benutze Unicode-Inifiles.
Zitat:

INI files can suffer a denial of service. A program can open an INI file in exclusive mode and lock out everybody else
Nicht, wenn man die API-Funktionen benutzt.
Zitat:

INI files contain only strings. If you wanted to store binary data, you had to encode it somehow as a string.
Zitat:

Parsing an INI file is comparatively slow.
Das dürfte sich mit XML-Dateien nicht ändern.

Ich empfehle CSIDL_COMMON_APPDATA, falls mehrere user darauf zugreifen sollen. Die Rechteeinstellung unter Vista hatte ich gerade als Thema: Link

Grüße, Messie

Luckie 24. Jan 2008 09:29

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Die meisten Punkte treffen aber auch auf XML-Dateien zu. ;)

hitzi 24. Jan 2008 09:39

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Das ist wohl wahr :) Ich denke mal die Hauptargumente gegen die INI Dateien, sind die Größenbeschränkung und fehlender Unicode Support.
Selber bevorzuge ich in Delphi zum größten Teil auch noch die INI Dateien, da mir die ganze XML Geschichte zuviel Overhead produziert, nur um ein paar Programmeinstellungen abzuspeichern. Nur unter C# bin ich schon komplett auf XML umgestiegen, da dort der Support schon im Framework drin ist ... aus der NET - Ecke wird auch das "Depricated" der INI Dateien kommen ;)

messie 24. Jan 2008 10:00

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Zitat:

Zitat von hitzi
fehlender Unicode Support.

Also die TntControls unterstützen jetzt Unicode-IniDateien....

hitzi 24. Jan 2008 10:35

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Das kannst du theoretisch auch selber bewerkstellingen. Sobald eine Unicode Datei vorliegt, speichert WritePrivateProfileStringW in Unicode. Wenn die Datei allerdings noch nicht vorhanden ist, wird automatisch in ANSI gespeichert. Man müsste also in einem Zwischenschritt die Datei vor der Benutzung durch WritePrivateProfileString als Unicode Datei erstellen.

OregonGhost 24. Jan 2008 10:57

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Was die Frage "Eigene Dateien" oder "Anwendungsdaten" angeht: Egal wie es andere machen, schonmal darüber geärgert, dass irgendeine blöde Anwendung die Dateien in "Eigene Dateien" gespeichert hat? Eben. Also müssen wir das ja nicht auch machen ;)
Visual Studio macht das zum Beispiel, weil darin z.B. die Projekte, Addins, Templates etc. des Benutzers liegen und er mit diesen auch arbeitet. Nicht wirklich schön, aber verständlich. Dateien / Ordner, die der Benutzer nicht anfassen soll, gehören da aber nicht hinein.

In dem verlinkten Artikel schreibt Raymond Chen übrigens nicht, dass man keine INI-Dateien mehr verwenden sollte, weil sie doof sind - er schreibt, dass man die Registry statt der INI-Dateien verwenden sollte. Über XML-Dateien schreibt er dann auch noch.
Viele Benutzer mögen es zwar nicht, wenn ein Programm in die Registry schreibt, aber eigentlich ist es der vorgesehene Ort für Programmeinstellungen und ähnliches, und zwar aus den von Raymond Chen genannten Gründen. Wenn man das aber nicht machen möchte, sondern lieber in einer Datei, dann nicht aufhalten lassen - das Format spielt keine große Rolle (abgesehen von eventuellen Anforderungen der Anwendung, für hierarchische Informationen ist XML sicher besser als INI). Aber bitte, bitte: Programmeinstellungen, Caches oder ähnliches gehören nicht in "Eigene Dateien". Es ist schlimm genug, dass man zum Beispiel einen "EA Games"-Ordner darin hat, weil Spielstände ja unbedingt in "Eigene Dateien" liegen müssen...
Ansonsten schadet es natürlich nicht, den Benutzer zu fragen. Je nach Nutzergruppe aber nicht gerade beim Start (Benutzer mögen ja keine Fragen und fühlen sich durch eine Frage, die sie nicht verstehen, belästigt, während Power User sich darüber freuen), aber man kann diese Möglichkeit ja im Einstellungsdialog vorsehen. Da kann man dann gegebenenfalls auch benutzerdefinierte Ordner zulassen. Sinnvollerweise aber nur die Möglichkeiten anzeigen, die funktionieren werden (also z.B. Programmordner anbieten, falls er beschreibbar ist).

Das mal als meine Meinung als Benutzer.

hitzi 24. Jan 2008 11:08

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Zitat:

Zitat von OregonGhost
Es ist schlimm genug, dass man zum Beispiel einen "EA Games"-Ordner darin hat, weil Spielstände ja unbedingt in "Eigene Dateien" liegen müssen...

Das soll sich ja mit Vista ändern. Da gibt's nen Ordner dafür -> FOLDERID_SavedGames.

mkinzler 24. Jan 2008 11:10

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Dann müssten die Entwickler aber 2 varianten entwickeln Vista/Pre-Vista. Deshalb werden die Savefiles wohl weiterhin unter Eigene Dateien zu finden sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 Uhr.
Seite 2 von 3     12 3      

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