AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

INI File Schreiben und auslesen

Ein Thema von floppybe · begonnen am 13. Mär 2014 · letzter Beitrag vom 24. Mär 2014
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

AW: INI File Schreiben und auslesen

  Alt 13. Mär 2014, 21:27
Hier noch ein Tipp. Delphi bietet für Ini Nutzer den einfachen Zugriff auf Registry über die TRegIniFile. Die funktioniert genauso wie die TIniFile. Es muss einfach nur die Unit und die Klasse getauscht werden. Der Rest bleibt. Was also bei Ini funktionierte, funktioniert dann auch in der Registry, mit dem Unterschied, dass man nun keine Ini mitschleppten muss.

Delphi-Quellcode:
uses
  Registry; //Änderung Registry

procedure TForm1.Button2Click(Sender: TObject);
var
  Path: String;
  IniFile: TRegIniFile; //Änderung TRegIniFile
  s: String;
begin
  //Dem Pfad sollte 'Software\' vorangestellt sein, damit es richtig im Ordner
  //für Software abgeleht wird. Dann noch einen Dateinamen. Der Rest wie bei Ini.
  Path := 'Software\' + 'MeinProgramm';

  //Alternativ einfach den Namen der Datei nehmen
  //Path := 'Software\' + ExtractFileName(ChangeFileExt(ParamStr(0), ''));

  IniFile := TRegIniFile.Create(Path); //Änderung TRegIniFile
  try
    IniFile.WriteString('Sektion', 'Ident', 'Wert');

    s := IniFile.ReadString('Sektion', 'Ident', 'Ersatzwert bei Fehler');
  finally
    IniFile.Free;
  end;

  ShowMessage(s);
end;
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: INI File Schreiben und auslesen

  Alt 14. Mär 2014, 15:47
..., mit dem Unterschied, dass man nun keine Ini mitschleppten muss.
Zumindestens mir fällt es wesentlich einfacher mit "richtigen" Dateien umzugehen als in den Tiefen der Registry etwas zu überprüfen.
Und dann verbleibt der Schrott von allen möglichen Programmen auch noch da...
Man kann also durchaus geteilter Meinung über den Vorteil von INI-Dateien sein.

, auf der anderen Seite ist die Frage seit zwei Seiten - was ist bei Ini ein Defaultwert?
Hab ich etwas übersehen?
"Default" ist das was rauskommt wenn die INI aus welchen Gründen auch immer nichts liefert.




Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (14. Mär 2014 um 15:51 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: INI File Schreiben und auslesen

  Alt 14. Mär 2014, 16:31
..., mit dem Unterschied, dass man nun keine Ini mitschleppten muss.
Zumindestens mir fällt es wesentlich einfacher mit "richtigen" Dateien umzugehen als in den Tiefen der Registry etwas zu überprüfen.
Und dann verbleibt der Schrott von allen möglichen Programmen auch noch da...
Man kann also durchaus geteilter Meinung über den Vorteil von INI-Dateien sein.
Du bist Programmierer, da sollte man die Registry positiv sehen. Die Aversion die einige hier (nicht nur du) gegen Einsatz von Registry haben, ist ja schon etwas beängstigend. Außerdem schreibt man nichts in die Tiefen der Registry, sondern nur in HKEY_CURRENT_USER, und da in den Zweig SOFTWARE (zumindest wenn man TRegIniFile mit dem Pfad nutzt). Das ist der Bereich für die Software, der ist extra dazu gedacht, dass man da seine Einstellungen speichert.

Natürlich hat die Ini seinen Vorteil, der Nachteil ist aber, dass man sie nicht überall speichern kann. Die Alternative mit dem Anwendungsdaten-Ordner ist ok, das Problem ist, dass man sich vorher immer erst verrenken muss um den Ordner zu finden. Selbst wenn man den Ordner nicht mit der Spezial-Ordner-Funktion sucht und die Umgebungsvariablen nutzt, es muss immer erst nachgeguckt werden wie der Code so ist.
Delphi-Quellcode:
var
  Str: array [0..1023] of Char;
  Len: Integer;
begin
  Len := ExpandEnvironmentStrings(PChar('%APPDATA%'), Str, 1024);
Kürzer geht es nicht, in der Regel ist der Code komplizierter, aber heute ist so ein schöner Tag, deshalb habe ich es einfach gehalten. Die dritte Alternative ist einfach die TIniFile gegen die TRegIniFile tauschen, und schon sind alle Probleme vergessen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: INI File Schreiben und auslesen

  Alt 14. Mär 2014, 17:44
Außerdem schreibt man nichts in die Tiefen der Registry, sondern nur in HKEY_CURRENT_USER, und da in den Zweig SOFTWARE (zumindest wenn man TRegIniFile mit dem Pfad nutzt). Das ist der Bereich für die Software, der ist extra dazu gedacht, dass man da seine Einstellungen speichert.
Hat den Nachteil, daß man nicht für Mehrere Benutzer die gleichen Parameter hat, falls notwendig.

Natürlich hat die Ini seinen Vorteil, der Nachteil ist aber, dass man sie nicht überall speichern kann.
Zumindestens Software die vom Stick und/oder einem Netzlaufwerk gestartet wird ist mit der INI besser bedient.

Übrigens habe ich nichts gegen die Registry, die Idee ist gut, die Umsetzung allerdings teilweise grausam.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
DateTimeError
(Gast)

n/a Beiträge
 
#5

AW: INI File Schreiben und auslesen

  Alt 14. Mär 2014, 22:35
Jupp. Neue Programme entwickle ich erstmal "portable" mit INIs mittels globalem INIFileName := ChangeFileExt(paramstr(0), '.ini'); im FormCreate.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: INI File Schreiben und auslesen

  Alt 14. Mär 2014, 22:49
Würde ich nicht machen. Besser dafür ist eine Funktion geeignet, auch wenn sie als Result den gleichen Wert liefert. Man hat dann immer die Möglichkeit den Pfad anzupassen.
  Mit Zitat antworten Zitat
DateTimeError
(Gast)

n/a Beiträge
 
#7

AW: INI File Schreiben und auslesen

  Alt 14. Mär 2014, 23:15
Würde ich nicht machen. Besser dafür ist eine Funktion geeignet, auch wenn sie als Result den gleichen Wert liefert. Man hat dann immer die Möglichkeit den Pfad anzupassen.
Meinst Du mich?
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:23 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