INI File & Windows Registry

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

INI File & Windows Registry

Beitrag von satmax »

Ich finde in XBase keine Funktionen zum lesen und schreiben von INI-Files beziehungsweise lesen und schreiben in die Windows Registry.

Gibt es da nichts oder finde ich es nur wieder mal nicht?


Gruß
Markus
Gruß
Markus
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:

Re: INI File & Windows Registry

Beitrag von brandelh »

In der Wissensbasis habe ich für INI Dateien (eigentlich veraltet, aber ich bevorzuge die immer noch) Funktionen hinterlegt.
:arrow: www.xbaseforum.de/viewtopic.php?f=16&t=3705

Es gibt auch eine REG Klasse und Beispiele zur Registry, aber wo fällt mir jetzt nicht ein.

Wie immer erst mal bei Pablo nachsehen ob er nicht sowas hat ;-)
Gruß
Hubert
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: INI File & Windows Registry

Beitrag von satmax »

Danke, das war extrem schnell!

Markus
Gruß
Markus
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: INI File & Windows Registry

Beitrag von georg »

Hallo, Markus -


Thomas Braun hat dazu mal eine Registry-Klasse erstellt, die Du von seiner Seite herunterladen kannst:

http://www.software-braun.de/

bzw.

http://www.software-braun.de/dl/regclass.zip
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2121
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 30 Mal
Danksagung erhalten: 72 Mal

Re: INI File & Windows Registry

Beitrag von Werner_Bayern »

georg hat geschrieben:Thomas Braun hat dazu mal eine Registry-Klasse erstellt, die Du von seiner Seite herunterladen kannst:
Die aber einige Fehler hat, siehe die versch. Beiträge hierzu.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: INI File & Windows Registry

Beitrag von satmax »

brandelh hat geschrieben:In der Wissensbasis habe ich für INI Dateien (eigentlich veraltet, aber ich bevorzuge die immer noch) Funktionen hinterlegt.
:arrow: http://www.xbaseforum.de/viewtopic.php?f=16&t=3705

Es gibt auch eine REG Klasse und Beispiele zur Registry, aber wo fällt mir jetzt nicht ein.

Wie immer erst mal bei Pablo nachsehen ob er nicht sowas hat ;-)
Danke für den Link. Ich verwende nun Deine Funktionen und Sie arbeiten bisher einwandfrei!

Gruß
Markus
Gruß
Markus
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: INI File & Windows Registry

Beitrag von AUGE_OHR »

wenn es um das bearbeiten von "vielen" INI Files angeht empfehle ich IniEdit.exe von Phil Ide
Application: IniEdit.exe
Author: Phil Ide
Copyright: Phil Ide 2003, All Rights Reserved

Additional Code:
Program: TINIFILE
Author: Matt Hamilton (Corrections to ':ReadString' by Terry Wolfe)
( Down loaded from TheOasis )
Copyright: Released to Public domain by Original Author Matt Hamilton
Corrections to ':ReadString' released to public domain
by Terry Wolfe of Service Education, Inc.
Date: 11/22/99
Purpose: A Class to handle the .INI files
==========================================================================

IniEdit is written chiefly as an example of how to make an XbpTreeView
co-operate with an MLE and an SLE (and the MLE co-operate with the SLE
and the XbpTreeView etc.).

For another example, please see Folder Browser, also available from my
site. http://www.idep.org.uk/xbse/foldbrow.zip

You can simply run IniEdit, in which case it will prompt you for an
ini file to edit, else you can pass the filename on the command line.
If you use the command line option, then you must pass the extension.

By default, Windows expects ini files to be in the %windir% directory
unless you supply a full path. IniEdit however, always checks the
current directory, and only falls back on %windir% if the file is not
found.

If the file is not found (and if no path is supplied and it is not in
%windir%), then IniEdit will simply quit without notification.

You can use the treeview to browse the entire file. If you highlight
a section, then the entire section appears within the MLE.

You can navigate within a section using either the treeview or the MLE -
to use the MLE, simply click on a line containing a value.

To edit a value, click on the SLE, type the new value and press the
enter key. The ini file is updated immediately, and the MLE will reflect
the change immediately too.

To delete either a key or a section, highlight it in the treeview and
right-click to bring up a context menu.

The 'Cancel' button will restore the original file and then quit the
application.


Regards,
--
Phil Ide
http://www.idep.org.uk/xbase
da XbpTreeView() scheinbar nicht Unicode fähig ist (chinesische Zeichen) habe ich eine "native" DXE_TreeView() Version wenn jemand so was benötigt.
gruss by OHR
Jimmy
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: INI File & Windows Registry

Beitrag von satmax »

Hallo Jimmy,

leider funktioniert der Link nicht, eventuell ein Tippfehler?

Gruß
Markus
Gruß
Markus
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:

Re: INI File & Windows Registry

Beitrag von brandelh »

Phil Ide ist leider vor vielen Jahren sehr krank geworden, ob er noch lebt wissen wir nicht.
Die alten LINKs funktionieren nicht mehr, aber viele seiner Sachen stehen in Pablos newsgroup ...

http://news.xbwin.com/xfree.idep.resources

Ich meine es gab noch einen anderen Server ...
Gruß
Hubert
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: INI File & Windows Registry

Beitrag von georg »

Hallo,


Alaska Software hat einen Mirror aufgenommen:

http://alaska-software.com/download/sho ... ection=400
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: INI File & Windows Registry

Beitrag von AUGE_OHR »

satmax hat geschrieben:leider funktioniert der Link nicht, eventuell ein Tippfehler?
sorry hab gar nicht gesehen das ich Links mit kopiert habe.

es geht hier nur um das IniEdit.exe welches mit einem TreeView das navigieren bei "vielen" INI Files zum editieren deutlich erleichtert.
für chinesische Zeichen habe ich eine DXE_TreeView Version welche mit Phil Class zusammenarbeitet auf Anforderung.
gruss by OHR
Jimmy
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: INI File & Windows Registry

Beitrag von satmax »

brandelh hat geschrieben:In der Wissensbasis habe ich für INI Dateien (eigentlich veraltet, aber ich bevorzuge die immer noch) Funktionen hinterlegt.
:arrow: http://www.xbaseforum.de/viewtopic.php?f=16&t=3705

Es gibt auch eine REG Klasse und Beispiele zur Registry, aber wo fällt mir jetzt nicht ein.

Wie immer erst mal bei Pablo nachsehen ob er nicht sowas hat ;-)
Hallo Hubert,

in der Routine ist IMHO ein kleiner Fehler mit dem default Wert.

In Zeile 58 habe ich folgende Änderung vorgenommen (cDefault auskommentiert):

Code: Alles auswählen

nLen := GetPrivateProfileStringA(cSection, cVar, /*cDefault*/ "",;
                         @cBuffer, nBufferLen, cPfad+cFileName)
Mache ich das nicht, bekomme ich für

Code: Alles auswählen

   nCount := VAL(GetIni("MeinEintrag","Offset","10","meinprog.ini" ))
keinen Eintrag erstellt da GetPrivateProfileStringA bereits den cDefault Eintrag liefert.

Gruß
Markus
Gruß
Markus
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:

Re: INI File & Windows Registry

Beitrag von brandelh »

Ich bin mir jetzt nicht sicher was du meinst, cDefault ist der Wert den man in der Anwendung als Standard übergibt, falls für diesen Begriff nichts in der INI steht.
Ich habe diesen Wert durchgereicht und er müsste wieder zurückkommen, sobald tatsächlich nichts gespeichert ist.

Get... legt auf jeden Fall nichts in der INI an und speichert auch nichts dort :!:

Bei Gelegenheit werde ich das nochmal testen ...
Gruß
Hubert
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: INI File & Windows Registry

Beitrag von satmax »

In Deiner Originalvariante wird beim Fehlen des Eintrages zwar der Default-Wert geliefert, es wird aber kein INI Eintrag mit dem Default Wert erstellt.
Gruß
Markus
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:

Re: INI File & Windows Registry

Beitrag von brandelh »

ich war zunächst geneigt zu fragen, wieso GetIni() den Wert speichern sollte, aber dann fand ich die Stelle im Quellcode (die Zeilennummer stimmt nur im obigen Auszug):

Code: Alles auswählen

   nLen := GetPrivateProfileStringA(cSection, cVar, cDefault,@cBuffer, nBufferLen, cPfad+cFileName)
   do case
      case nLen == -1 // Puffer war nicht lang genug, aktuell Fehlermeldung
           msgbox("GetPrivateProfileStringA() meldet -1")
           cReturn := cBuffer
      case nLen ==  0
           // kein Eintrag, ich möchte dann die INI erzeugen und den default Werte anlegen !
           SetIni(cSection, cVar, cDefault, cPfad+cFileName )
           cReturn := cDefault
      otherwise
           cReturn := left(cBuffer,nLen)
   endcase
du hast völlig Recht, nach meinem eigenen Kommentar möchte ICH bei dieser Funktion den Defaultwert speichern (damit man in der INI den Wert sicher ändern kann).
Das wird so nicht erreicht !
Gruß
Hubert
Antworten