Einstellungen in XPF- oder INI-Dateien? Editor?

Von der Installation bis zur Auslieferung der Applikation

Moderator: Moderatoren

Antworten

Wie speicherst du User-Einstellungen?

INI-Datei
5
28%
XPF-Datei
5
28%
Datenbank-Datei (DBF o.a.)
7
39%
- noch anders
1
6%
 
Insgesamt abgegebene Stimmen: 18

Daniel

Einstellungen in XPF- oder INI-Dateien? Editor?

Beitrag von Daniel »

Anwender-Einstellungen wie Datei-Pfade, Drucker und Druck-Einstellungen, Firma-Adresse usw. hatte ich zu Clipper-Zeiten in einer MEM-Datei gespeichert (SAVE TO filename).
Das war praktisch, doch konnte man die MEM-Datei schon damals nicht direkt editieren.
Unter XBase wurde die MEM- in eine XPF-Datei umgewandelt.

Doch womit kann man diese direkt editieren?
- Jemand einen guten Tipp? :?:

In andern Apps habe ich deshalb alles in DBF gespeichert.
Doch mehrmals wurden mir INI-Dateien empfohlen (Txt-format).

Wo seht ihr Vorteile und Nachteile?

Danke und beste Grüsse
Daniel
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

ich nehme sowohl DBF als auch INI Dateien. Beide haben Vor- und Nachteile. Die Registry nehme ich nicht, ich kann es nicht leiden wenn ein Programm Daten in einem anderen Ordner als dem Datenordner ablegt, obwohl dies seit längerem der von MS vorgesehene Ort ist. Die Vor- und Nachteile kennzeichne ich mit +/-

DBF:

+ schneller standadisierter Zugriff ohne zusätzlicher Arbeit.
+ man kennt sich damit aus
+ Sprache ist (auf OEM) festgelegt, in INI muss man raten ... aber meist ANSI
+ Datentypen wie man sie kennt.
+ Sicherung und Installation mit Anwendung durch einfaches Kopieren
- Jede Info muss in ein Feld mit festgelegter Länge oder in MEMO, was noch mehr benötigt.
- Der Anwender kann diese nicht direkt ändern, falls man das überhaupt will ...

INI:

+ Sehr flexibles Format (dadurch keine Speicherverschwendung und keine Begrenzungen)
+ Ist von früher her (noch) akzeptiert
+ Zugriff ist recht schnell möglich.
+ Sicherung und Installation mit Anwendung durch einfaches Kopieren
+ Sicherung und Installation mit Anwendung durch einfaches Kopieren
- Mann muss Zugriffsroutinen schreiben oder die des BS nutzen
- Es gibt nur Text, welcher eventuell umgewandelt werden muss
- Blanks im Text überfordern manche INI Routinen (bessere verwenden !)
- Anfällig gegen Benutzeränderungen, wenn man dies nicht wünscht.

Registry:

+ Empfohlen von MS
+ Wer kein REGEDIT kennt, kann nichts ändern
+ Sehr schnelle Zugriffe über API
- API Zugriffe muss man einbinden (es gibt verschiedene Implementationen)
- Datensicherung ohne Registrywerte ist nicht vollständig.
- Installation ist erforderlich, einfaches Kopieren reicht nicht mehr.
- Unterschiede in BS Versionen, nur in Windows vorhanden. (Linux Wine ?)

Ich würde die INI-Werte bei jeder Methode bevorzugt über ein Interface in der eigenen Anwendung ändern lassen. Alle 'Direktzugriffe' sind riskant.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Daniel.

Wir nutzen alle Varianten, aber auch noch ziemlich intensiv XPF-Dateien, weil es bequem ist, per _SymSave() und _SymLoad() (SAVE TO, RESTORE FROM) darauf zuzugreifen, und man kann zwischen benutzerbezogenen, applikationsweiten oder zum Beispiel mandantenbezogenen Einstellungen elegant unterscheiden, etwa über Präfixe oder Speicherorte.

Wer eXpress++ hat, verfügt mit XpfEdit über einen Editor, aber den kann man auch leicht selbst bauen. Die Funktion SymbolInfo() liefert - je nach Parameter - ein mehrdimensionales Array zurück, das zum Beispiel alle Privates enthält. Je nach Präfix kann man daraus einzelne Variablen ausfiltern, Typ und Inhalte sind leicht über den Makroexpander manipulierbar.

XPFs haben zwei große Nachteile. Erstens ist das Format offenbar nicht sehr robust, wir erleben immer wieder "Kein XPF-Format oder falsche Versionsnummer", und das Fehlersystem liefert in diesem Augenblick nicht einmal Informationen darüber, welche XPF-Datei betroffen ist (es können bei uns hunderte werden). Und zweitens ist _SymLoad() übers Netzwerk u.U. sehr langsam, weshalb wir diese Vorgänge inzwischen mit Umkopiervorgängen in das lokale Temp-Verzeichnis abhandeln.
Herzlich,
Tom
Daniel

Beitrag von Daniel »

brandelh hat geschrieben:Ich würde die INI-Werte bei jeder Methode bevorzugt über ein Interface in der eigenen Anwendung ändern lassen. Alle 'Direktzugriffe' sind riskant.
Hallo Hubert

danke für die übersichtliche Gegenüberstellung!
XPF scheinst du also eliminiert zu haben.
Die Registry ist mir auch weniger sympathisch, denn M$ hat es wieder mal geschafft (wie mit dem unsäglichen Ordner "Dokumente und Einstellungen" :roll:) jegliche Uebersicht zu sabotieren.

Ich habe INI bisher noch nicht verwendet, es scheint also neben Vorteilen auch Nachteile zu haben (abgesehen von den neuen Routinen).

Was das Editieren betrifft, bin ich natürlich mit dir der Meinung, dass der Anwender nur eine Maske / Interface in de App dazu benutzen darf.
Den Editor suche ich bloss für mich, für eine rasche Anpassung.
Daniel

Beitrag von Daniel »

Tom hat geschrieben:Wer eXpress++ hat, verfügt mit XpfEdit über einen Editor, aber den kann man auch leicht selbst bauen.
...
Und zweitens ist _SymLoad() übers Netzwerk u.U. sehr langsam, weshalb wir diese Vorgänge inzwischen mit Umkopiervorgängen in das lokale Temp-Verzeichnis abhandeln.
Hallo Tom

danke für deine Erfahrungen!
Zerstört wurden meine XPF-Dateien zum Glück noch nie, während ich mit Indizes schon jede Menge "corrupted"-Fehler hatte.

Danke auch für die Erinnerung an XpfEdit von eXPress, genau den hatte ich gesucht.
Eben bloss, um selber schnell mal etwas anzupassen an neue Verzeichnisse.
Hat bestens geklappt.

Und was würdest du für eine neue Applikation nehmen?

herzlich, Daniel
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Daniel.
Und was würdest du für eine neue Applikation nehmen?
XML für übergreifende Einstellungen und die Registry für arbeitsplatz- bzw. benutzerbezogene.
Herzlich,
Tom
rassekst
UDF-Programmierer
UDF-Programmierer
Beiträge: 97
Registriert: Mi, 01. Feb 2006 23:49
Wohnort: Glauchau
Kontaktdaten:

Beitrag von rassekst »

Hallo,

Ich würde DBF nicht empfehlen, da es halt ein Datenbankformat ist. Da müsste man ja jedes Format empfehlen. Es gibt meineserachtens auch kein Format welches man uneingeschränkt bzw. alleine empfehlen kann. Ich für meinen Teil nehme das, welches für die zu speichernden Daten ausreicht. Das ist für temporäre daten wie Fensterpositionen usw. eben die Registry Userteil.
Sehr gut finde ich immer noch die INI-Datei. Die kann im Prinzip jeder lesen und editieren. EIn grosser Vorteil ist das ich die Einträge Dokumentieren kann. Das ist in Registry und DBF nicht möglich.
Übrigens ist der Satz MS empfielt die Registry seit .NET Framework nicht mehr aktuell. Jetzt wird XML empfolen. Ich für meinen Teil nehme trotzdem die INI's. Die Kunden kommen immer noch am besten damit zurecht.

Gruss Steffen
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

MEM oder XPF Dateien waren mir immer suspect, die habe ich nie genommen.

XML haben aus meiner Sicht einen riesigen Overhead und ich habe noch keine sauberen Zugriffsfunktionen (eventuell kann da ja jemand aushelfen ...)

INI verwalte ich z.Z. noch mit einer eigenen Funktion, die noch aus der alten Zeit (OS/2 und Win32 plus Clipper) stammt. Nun habe ich bei Phil Aufrufe zu den Win32 DLL Funktionen gefunden, mal sehen ob die besser sind. Allerdings sind meine INI-Dateien sehr klein, da wird wohl kein Unterschied bei rauskommen...

DBF bedeuted eindeutig viele viele Felder und meist nur ein Datensatz.
Nicht immer ganz so toll, aber es geht doch ganz gut.
Gruß
Hubert
Antworten