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
 
Popov
(Gast)

n/a Beiträge
 
#6

AW: INI File Schreiben und auslesen

  Alt 13. Mär 2014, 21:29
Beispiel:

Delphi-Quellcode:
uses
  IniFiles;

procedure TForm1.Button1Click(Sender: TObject);
var
  Path, FileName: String;
  IniFile: TIniFile;
  s: String;
begin
  Path := ExtractFilePath(ParamStr(0)); //hat schon ein Backslash am Ende
  Path := IncludeTrailingPathDelimiter(Path); //braucht man hier nicht, wenn man sich aber unsicher ist, ist es nicht falsch
  FileName := 'Einstellungen.ini';

  //Erstellt falls nötig den Unterordner
  if not ForceDirectories(Path + 'INI') then
  begin
    MessageDlg('Es wurde kein Unterordner angelegt', mtError, [mbOK], 0);
    Exit;
  end;

  //Alternative: Prüft auf Unterordner
  {if not DirectoryExists(Path + 'INI') then
  begin
    MessageDlg('Es wurde kein Unterordner gefunden', mtError, [mbOK], 0);
    Exit;
  end; }


  IniFile := TIniFile.Create(Path + FileName);
  try
    IniFile.WriteString('Sektion', 'Ident', 'Wert');

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

  ShowMessage(s);
end;
Ini ist eine ganz normale Klasse, sie unterschiedet sich von den meisten vielleicht dadurch, dass man in Create ein Pfad angeben muss. Experimentiere nicht mit dem Pfad, sondern liefere etwas mit Hand und Fuß. Wenn du keine Ahnung hast was für ein Pfad du angibst, dann weißt du auch nicht wo die Ini landet.

Das sieht nicht gut aus: ExtractFilePath(ParamStr(0)) + './ini/einstellungen.ini'; ExtractFilePath liefert immer ein Backslash am Ende, also z. B. c:\Temp\Übungen\Projekt1\. Du brauchst also nach ExtractFilePath keinen Backslash angeben (schon gar nicht ein Slash).

Bist du nicht sicher ob am Ende ein Backslash ist, überprüfe es oder verwende die Funktion IncludeTrailingPathDelimiter . Sie macht nichts kaputt, man kann sie zur Not also immer verwenden. Wenn da bereits ein Backslash am Ende ist, wird nichts gemacht, sonst Backslash angefügt.

Willst du es in einen Ordner schrieben, dann in der Form: ExtractFilePath(ParamStr(0)) + 'ini/einstellungen.ini'; . Wie gesagt, ExtractFilePath liefert am ende immer einen Backslash.
Fehlt der Ordner "Ini\", gibt es eine Fehlermeldung. Also vorher vergewissern ob der Ordner existiert. Oder mit ForceDirectories erstellen.

Der Rest ist üblich wie bei anderen Klassen: Objekt deklarieren und erstellen, mit Objekt arbeiten, zuletzt IniFile Objekt freigeben.
  Mit Zitat antworten Zitat
 

 

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 01:40 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 by Thomas Breitkreuz