AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Ini Datei mit Bigini in Listview einlesen
Thema durchsuchen
Ansicht
Themen-Optionen

Ini Datei mit Bigini in Listview einlesen

Ein Thema von Heino Piper · begonnen am 6. Feb 2007 · letzter Beitrag vom 6. Feb 2007
Antwort Antwort
Heino Piper

Registriert seit: 15. Sep 2003
21 Beiträge
 
#1

Ini Datei mit Bigini in Listview einlesen

  Alt 6. Feb 2007, 03:47
Moin,
Ich habe folgenden funktionierenden Code
Delphi-Quellcode:
procedure TdfmForm1.FormShow(Sender: TObject);
var
  ini: TIniFile;
  x: Integer;
  Eintrag: TListItem;
  sl: TStringList;
begin
  ini := TiniFile.Create(ExtractFilePath(ParamStr(0)) + 'Dateiname.ini');
  sl := TStringList.Create;
  try
    listview1.Clear;
    for x := 1 to 100 do
    begin
      Eintrag := Listview1.Items.Add;
      Eintrag.Caption := ini.ReadString(IntToStr(x), 'Test', '');
      Eintrag.SubItems.Add(ini.ReadString(IntToStr(x), 'Test-1', ''));
      Eintrag.SubItems.Add(ini.ReadString(IntToStr(x), 'Test-2', ''));
  end;
finally
    ini.Free;
end;
soweit so gut, da meine ini größer wird als 64k habe ich es versucht mit Bigini
und habe folgendes zu meinem Projekt hinzugefügt:

uses Bigini;

Delphi-Quellcode:
private
    { Private-Deklarationen }
    BigIniFile : TBiggerIniFile;
    FFileName : String;
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
  FFileName := ExtractFilePath(Application.ExeName)+'Rebsorten.ini';
  BigIniFile := TBiggerIniFile.Create(''); { no filename now}
end;
und die procedure TdfmForm1.FormShow(Sender: TObject) so abgeändert:
Delphi-Quellcode:
procedure TForm2.FormShow(Sender: TObject);
var
  x: Integer;
  Eintrag: TListItem;
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    listview1.Clear;
    for x := 1 to 100 do
    begin
      Eintrag := Listview1.Items.Add;
      Eintrag.Caption := BiginiFile.ReadString(IntToStr(x), 'Test', '');
      Eintrag.SubItems.Add(BiginiFile.ReadString(IntToStr(x), 'Test-1', ''));
      Eintrag.SubItems.Add(BiginiFile.ReadString(IntToStr(x), 'Test-2', ''));
    end;
finally
    BiginiFile.Free;
end;
end;
Ich habe schon im Netz und in allen Foren nach einem Beispiel zum Einlesen einer ini Datei
mit Bigini in ein Listview gesucht aber leider nichts gefunden.
Die Datei Bigini.pas habe ich auch in meinem Projektordner gelegt.
Beim Aufruf bleibt mein Listview jedoch leer.
Das Demoprogramm von Bigini hilft mir auch nicht weiter, weil dort nicht das Einlesen als Procedure
nicht vorhanden ist.

Vielen Dank im voraus Heino
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
510 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Ini Datei mit Bigini in Listview einlesen

  Alt 6. Feb 2007, 06:59
Ich kenne BigIni jetzt zwar nicht, aber warum machst du es nicht so:

Delphi-Quellcode:
procedure TdfmForm1.FormShow(Sender: TObject);
var
  BigIniFile : TBiggerIniFile;
  x: Integer;
  Eintrag: TListItem;
  sl: TStringList;
begin
  BigIniFile := TBiggerIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Dateiname.ini');
  sl := TStringList.Create;
  try
    listview1.Clear;
    for x := 1 to 100 do
    begin
      Eintrag := Listview1.Items.Add;
      Eintrag.Caption := BigIniFile.ReadString(IntToStr(x), 'Test', '');
      Eintrag.SubItems.Add(BigIniFile.ReadString(IntToStr(x), 'Test-1', ''));
      Eintrag.SubItems.Add(BigIniFile.ReadString(IntToStr(x), 'Test-2', ''));
  end;
finally
    BigIniFile.Free;
end;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Ini Datei mit Bigini in Listview einlesen

  Alt 6. Feb 2007, 07:56
Guten Morgen,

es ist schon richtig, dass TIniFile eine Größenbeschränkung aufweist und auch sonst ist diese Klasse etwas antiquiert - immerhin kapselt sie eine Win3-Funktionalität. Die verschiedenen Ersatzlösungen sind in der Regel fast genau so alt. Delphi bringt eine eigene Variante von TIniFile für diese "Big Ini-Files" mit - TMemIniFile. Es ist also kaum noch nötig auf andere Komponenten auszuweichen. Der wesentliche Unterschied, neben dem Wegfall der Größenbeschränkung, ist die gepufferte Arbeitsweise: Lese- und Schreiboperationen finden auf einer Kopie im Hauptspeicher statt und müssen mit UpdateFile() persistent gemacht werden.

Aber eigentlich möchte ich auf etwas anderes hinaus. Wenn ich die Daten für eine ListView schon als Textdatei ablege, dann würde ich eher ein CSV-Format einsetzen. Demo hier.

Grüße vom marabu
  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 13:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz