"Objekteditor" für INI-files

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: "Objekteditor" für INI-files

Beitrag von MacWomble »

mschnell hat geschrieben:... als auch Registry-Einrtäge editieren können
...
In Windows (>=7) gibt es jeweils verschiedene Directories für diese Dateien. Ob es in Linux da einen Standard gibt, weiß ich nicht.

Die Registry ist der größte Schwachsinn.den MS eingeführt hat und die Standardordner sind in den verschiedenen Windowsversionen auch unterschiedlich.
Ini und XML gehen auch unter Windows und sind ohnehin besser,

Globale Einstellungen gehören in die Datenbank. Mir geht es nur um die anwenderspezifischen Einstellungen.
Dennoch finde ich deine Anregungen gut.
Zuletzt geändert von MacWomble am Mo 5. Nov 2018, 14:23, insgesamt 1-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: "Objekteditor" für INI-files

Beitrag von pluto »

Die Registry ist der größte Schwachsinn.den MS eingeführt hat und die Standardordner sind in den verschiedenen Windowsversionen auch unterschiedlich.
Ini und XML gehen auch unter Windows und sind ohnehin besser,

Ich bin mir sehr sicher das INI und XML durch JSON-Config Dateien ersetzt werden.

In Wieweit die Registry noch eine Rolle unter Windows-Anwendungen Spielt, weiß ich nicht....
MFG
Michael Springwald

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: "Objekteditor" für INI-files

Beitrag von MacWomble »

Json wäre jedenfalls auch noch eine gute Option.
Wogegen ich mich generell sträube, ist die Registry. Ich entwickle Plattformunabhängig und da spielt eine Registry keine Rolle.
Außerdem ist die Registry in den meisten Fällen für Windows-Probleme bekannt (und seien es nur Geschwindigkeitseinbußen).
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: "Objekteditor" für INI-files

Beitrag von mschnell »

MacWomble hat geschrieben:Die Registry ist der größte Schwachsinn.den MS eingeführt hat und die Standardordner sind in den verschiedenen Windowsversionen auch unterschiedlich.

Da hast Du natürlich recht !
Aber sie ist nunmal da und mancher möchte sie verwenden Delphi und Lazarus hat aber - soweit ich weiß - Registry-Unterstützung,
Deshalb wäre es natürlich schön eine Komponente zu haben die alles unter einem Dach erledigt und man beim Instantiieren nur angeben muss, an welche Art INI Information man sich anbinden möchte.

-Michael

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: "Objekteditor" für INI-files

Beitrag von Timm Thaler »

mschnell hat geschrieben:Aber sie ist nunmal da und mancher möchte sie verwenden Delphi und Lazarus hat aber - soweit ich weiß - Registry-Unterstützung


Das einzige, wo ich bisher was in der Registry machen musste, war die Registrierung von Dateiendungen für den Programmstart. Und das hat der Installer übernommen.

Was macht ihr so in der Registry?

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: "Objekteditor" für INI-files

Beitrag von MacWomble »

mschnell hat geschrieben:Aber sie ist nunmal da und mancher möchte sie verwenden Delphi und Lazarus hat aber - soweit ich weiß - Registry-Unterstützung,

Naja, ich habe auch einen Aschenbecher im Auto, rauche aber im Auto gar nicht. :twisted:

Warum soll eine Komponente etwas unterstützen, wofür es keinen wirklich sinnvollen Grund gibt:

1. Die Registry ist fehleranfällig

2. Die Registry (der relevante Bereich) lässt sich nicht einfach mit den Projektdaten sichern (Komplettsicherung einzelner Programme mit allen zug. Daten ist unter Windows ohnehin fast unmöglich, außer die Anwendung macht eine eigene Sicherung, was aber Blödsinn ist. (gut, nicht in jedem Fall. Aber in Betracht auf Systemsicherungen kann ich ein einzelnes Programm mit Daten und Einstellungen unter Windows i.d.R nicht einfach wieder herstellen.)

3. Es widerspricht einem guten Programmierstiel, Einstellungen verschiedener Programme in einer Datei zu vermischen (nichts anderes wird in der Registry gemacht)

4. Die Zukunft von Windows ist derzeit nicht klar (W10 nicht annähernd DSGVO-Konform, Folgeversionen von MS derzeit nicht vorgesehen)*

5. andere Lösungen sind schneller und sicherer, da klar strukturiert (Dafür lassen sich Lizenzkeys schlechter verstecken)

'manche möchten sie verwenden' ist kein -sinnvoller- Grund für mich. 'Manche' sollten sich das überlegen.

Gut, ich verwende auch Lazarus, obwohl es versucht möglichst Delphi-kompatibel zu bleiben - obwohl dies nicht wirklich immer sinnvoll ist ... :shock:
(Umsteiger von Delphi freuen sich, der Rest der Entwickler muss dafür aber auf Innovationen verzichten)

* lt. Pressemeldung in 2017 von MS ist W10 das letzte Windows (oder meinten die das anders? :oops: )

PS: nichts ist unmöglich.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: "Objekteditor" für INI-files

Beitrag von charlytango »

MacWomble hat geschrieben:Warum soll eine Komponente etwas unterstützen, wofür es keinen wirklich sinnvollen Grund gibt:


STOP !

Bitte bellt nicht vor dem falschen Baum !
Die Diskussion ob ein Speichermedium nun sinnvoll ist oder nicht ist völlig unnötig und bindet nur Energie die in das Design der (auch von mir) wünschenswerten Komponente fließen kann.

Jetzt bin ich in dieser verrückten Branche schon mehr als 30 Jahre und habe viele derartige Diskussionen gesehen.
Nicht immer hat die Vernunft gewonnen oder das bessere System triumphiert. Beispiele gefällig? Betamax vs. VHS oder Windows3 gegen OS/2.
Die Liste ist laaaang und länger. Ich kannte noch dBase2 auf einem Commodore mit CPM Betriebssystem (auch so ein Beispiel das gegen MSDos verlor)

Selbst eingefleischten Windows-Nutzern ist es mittlerweile klar dass die Registry als aufgebohrtes Speichersystem ein Murks ist.
Meine Programme hielt ich auch in den Zeiten der gehypten Registry immer so dass die installation im wesentlichen ein Kopieren in ein Verzeichnis war. Das konnte die Sekretärin mit einer dreiminütigen Netzwerkunterbrechung für das ganze Unternehmen machen, den Admins gab es ja nicht.

Aber das klappte nicht bei jedem Auftraggeber - manche waren ums verrecken nicht umzustimmen und bevor ich einen Auftrag sausen ließ und damit auch die Arbeitsplätze meiner Mitarbeiter gefährdete, habe ich manches auch zähneknirschend akzeptiert.

Also ist meine Meinung dazu:
Unterstützt bei so einer Komponente, die nun praktisch JEDER irgendwann brauchen wird ALLE möglichen Speicherformate.
Nachdem sich diese Unterscheidung wohl nur auf das Lesen und Speichern der Inhalte beschränken wird, sollte das mit einem objektorientierten Ansatz kein Hexenwerk sein. Ihr seid sicher bessere Programmierer als ich, also... was solls

Und wenn die persönliche Befindlichkeit des Projektbetreuers eine Speicherart nicht zulässt, dann bleibt sie eben leer und wird zeitweilig nicht unterstützt. Aber das Design erlaubt es jemandem anderen diese Lücke zu füllen.

Bitte keine Glaubenskriege, das ist einfach verlorene Zeit.

Sorry wenns OffTopic sein sollte, aber das musste sein ;)
Just my 2 cents...

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: "Objekteditor" für INI-files

Beitrag von mschnell »

Timm Thaler hat geschrieben:Was macht ihr so in der Registry?

Ich: Nichts. Aber Kollegen von mir, die ein komplexes Programm-System für die Verwendung in Windows entwickelt haben und pflegen, kommen da kaum drum herum.

-Michael

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: "Objekteditor" für INI-files

Beitrag von MacWomble »

mschnell hat geschrieben: Aber Kollegen von mir, die ein komplexes Programm-System für die Verwendung in Windows entwickelt haben und pflegen, kommen da kaum drum herum.

Warum nicht? Haben sie es versucht?
Zuletzt geändert von MacWomble am Sa 10. Nov 2018, 14:36, insgesamt 1-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: "Objekteditor" für INI-files

Beitrag von Timm Thaler »

mschnell hat geschrieben:Aber Kollegen von mir, die ein komplexes Programm-System für die Verwendung in Windows entwickelt haben und pflegen, kommen da kaum drum herum.


Und was speichern die da? Mich interessiert das von der rein technischen Seite.

Die meisten Programme speichern ja inzwischen nach User\AppData\Roaming. Ich bin auch schon auf die Schnauze geflogen, weil alte Programme ihr INI ins eigene Programmverzeichnis gespeichert haben, und unter Win7 war damit plötzlich Essig. Naja, plötzlich eigentlich nicht, das war ja unter XP schon nicht mehr State of the Art, aber ging halt.

Windows speichert halt eine Menge eigene Einstellungen in der Registry, aber dass Programme da großartig ihre Prefs oder Konfigs drin ablegen...

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: "Objekteditor" für INI-files

Beitrag von wp_xyz »

Timm Thaler hat geschrieben:aber dass Programme da großartig ihre Prefs oder Konfigs drin ablegen...

Dann öffne RegEdit und navigiere zu HKEY_CURRENT_USER\Software (das ist der offizielle Ablageort für Programmeinstellungen), da werden dir die Augen übergehen...

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: "Objekteditor" für INI-files

Beitrag von Timm Thaler »

wp_xyz hat geschrieben:Dann öffne RegEdit und navigiere zu HKEY_CURRENT_USER\Software (das ist der offizielle Ablageort für Programmeinstellungen), da werden dir die Augen übergehen...


Zuerst einmal sehe ich einen Haufen Programme, die schon gar nicht mehr auf dem Rechner sind. War wohl nicht nötig, das beim Deinstallieren zu entfernen.

Dann sehe ich einen Haufen Programme nicht, die auf dem Rechner sind. Die haben es anscheinend nicht nötig, in die Regsitry zu schreiben.

Und dann sehe ich einen Haufen Programme, die da Zeug reinschreiben, was sie genausogut in eine INI oder CONF Datei hätten schreiben können.

Allerdings scheint es gerade sehr beliebt, recent files in die Registry zu schreiben, damit man die im Startmenu unter dem Programm gezielt wieder aufrufen kann.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: "Objekteditor" für INI-files

Beitrag von wp_xyz »

Timm Thaler hat geschrieben:Zuerst einmal sehe ich einen Haufen Programme, die schon gar nicht mehr auf dem Rechner sind. War wohl nicht nötig, das beim Deinstallieren zu entfernen.

Die Uninstaller verfolgen die Philosopie, dass der User das Programm wieder installieren könnte und dann die gewohnte Umgebung wieder sehen möchte. Daher lassen sie die User-Settings in der Regel auf dem Rechner. Oder allgemeiner: Sie lassen die Dateien, die der Installer nicht geschrieben hat, unangetastet - es könnten z.B. "echte" Benutzer-Dateien darunter sein. Ich meine zwar, dass man hier den Ausnahme- zum Regelfall gemacht hat, aber so ist es nun mal. Und das sind noch die harmlosesten Reste. Versuche einmal einen Virenscanner zu deinstallieren und dann den eines anderen Herstellers zu installieren.

Timm Thaler hat geschrieben:Dann sehe ich einen Haufen Programme nicht, die auf dem Rechner sind. Die haben es anscheinend nicht nötig, in die Regsitry zu schreiben.

Die nehmen genau das in Anspruch, was du für dich forderst.

Timm Thaler hat geschrieben:Und dann sehe ich einen Haufen Programme, die da Zeug reinschreiben, was sie genausogut in eine INI oder CONF Datei hätten schreiben können.

Natürlich. Es zwingt dich keiner in die Registry zu schreiben, und es zwingt die anderen keiner, in eine Ini-Datei zu schreiben.

Timm Thaler hat geschrieben:Allerdings scheint es gerade sehr beliebt, recent files in die Registry zu schreiben, damit man die im Startmenu unter dem Programm gezielt wieder aufrufen kann.

Ist das schlecht? Bin jetzt nicht ganz sicher, aber das könnte die Grundlage davon sein, dass die Datei-Dialoge unter Windows für jedes Programm immer in dem Verzeichnis starten, in dem sie zuletzt verlassen wurden (meistens wenigstens). Was nervt mich da unter Linux, dass ich mich da immer durch den ganzen Verzeichnisbaum klicken muss!

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: "Objekteditor" für INI-files

Beitrag von mschnell »

Timm Thaler hat geschrieben:Und was speichern die da?

Für ein großes Programm-System, das aus einer zweistelligen Zahl von Exutables besteht, werden die Einstellungen, die zwischen den Programen kommuniziert werden müssen in der Registry gehalten, weil dann die Speicher-Orte und Zugriffs-Möglichkeiten unstrittig sind. Das ist zu frühen Windows XP - Zeiten entstanden.

Ich hätte das auch lieber Dateien an entsprechend vordefinierten Orten verwendet, aber das Delphi Team hat den "einfachen" (von Delphi out of the box unterstützten) Weg gewählt und beibehalten.

-Michael
Zuletzt geändert von mschnell am Di 13. Nov 2018, 15:50, insgesamt 3-mal geändert.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: "Objekteditor" für INI-files

Beitrag von mschnell »

wp_xyz hat geschrieben: Was nervt mich da unter Linux, dass ich mich da immer durch den ganzen Verzeichnisbaum klicken muss!

Es ist "logisch" gesehen kein großer Unterschied, ob beliebige Daten (Strings) in einer File-based-Datenbak ähnlichen "Registry" gehalten werden oder in einer Directory-Struktur.
Bei Directory ist der Zugriff mit Standard-Tools gewährleistet, bei "Registry" braucht man eine speziell dafür erstellte Software (User-Interface / API).
Ein "gutes" Datei-System ist nicht deutlich langsamer.
Um eine Allgemeingültigkeit zu erreichen kommt es in beiden Fällen auf entsprechende Dokumentation an und darauf, dass sich alle daran halten.
Eine "Registry" könnte theoretisch komprimiert sein, um sie kleiner zu kriegen. Wird aber - glaube ich - nicht gemacht. Bei einem Datei-System geht das auch (ist in Linux problemlos verfügbar) würde dann aber erforden, dass alle Konfigurations-Dateien "zentral" liegen (was wiederum durch Symlinks auch problemlos machbar wäre),

-Michael

Antworten