AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi INIDatei: Namen der Sections auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

INIDatei: Namen der Sections auslesen

Ein Thema von Z32 · begonnen am 13. Feb 2007 · letzter Beitrag vom 13. Feb 2007
 
bigg
(Gast)

n/a Beiträge
 
#6

Re: INIDatei: Namen der Sections auslesen

  Alt 13. Feb 2007, 15:48
Die etwas kompliziertere Variante wäre dann noch diese:

Delphi-Quellcode:
const MAX_INI_SIZE = 262144;

////////////////////////////////////////////////////////////////////////////////
// Größe einer Datei ermitteln
////////////////////////////////////////////////////////////////////////////////

function GetFileSize(const FileName: String): Int64;
var FileHandle: Cardinal; var Data: WIN32_FIND_DATA;
begin
  Result := -1;
  FileHandle := FindFirstFile(PChar(FileName), Data);
  try
    if FileHandle > 0 then
    begin
      Int64Rec(Result).Hi := Data.nFileSizeHigh;
      Int64Rec(Result).Lo := Data.nFileSizeLow;
    end;
  finally Windows.FindClose(FileHandle);
  end;
end;

////////////////////////////////////////////////////////////////////////////////
// Entfernt Tabs und Leerzeichen an Anfang und Ende eines
// jeden Eintrags in einer Liste
////////////////////////////////////////////////////////////////////////////////

procedure TrimIni(const Ini: TStringList);
var i: Integer;
begin
  for i := 0 to Ini.Count -1 do
  if Ini[i] <> 'then
  Ini[i] := Trim(Ini[i]);
end;

////////////////////////////////////////////////////////////////////////////////
// Versucht eine "Ini-Datei" einzulesen
////////////////////////////////////////////////////////////////////////////////

function OpenIni(const FileName: String; const Ini: TStringList): Boolean;
var FileSize: Int64;
begin
  Result := False;
  FileSize := GetFileSize(FileName);

  if FileSize <> -1 then
  begin
    if FileSize < MAX_INI_SIZE then
    begin

      try
        Result := True;
        Ini.LoadFromFile(FileName);
      except
        Result := False;
      end;

      if Result then TrimIni(Ini);
    end;
  end;
end;

////////////////////////////////////////////////////////////////////////////////
// Alle Gruppen auslesen
////////////////////////////////////////////////////////////////////////////////

procedure ReadSections(const Ini, Sections: TStringList);
var i, p: Integer;
begin
  Sections.Clear;

  for i := 0 to Ini.Count -1 do
  begin
    if Ini[i] <> 'then
    begin
      if Ini[i][1] = '[then
      begin
        p := PosShaAsm5(']', Ini[i]); // ersetzen durch POS()

        if p > 2 then
        Sections.Add(Copy(Ini[i], 1, p));
      end;
    end;
  end;
end;
Benötigt werden 2 Listen vom Typ TStringList.
  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 05:34 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