![]() |
Ini Datei mit Bigini in Listview einlesen
Moin,
Ich habe folgenden funktionierenden Code
Delphi-Quellcode:
soweit so gut, da meine ini größer wird als 64k habe ich es versucht mit Bigini
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; und habe folgendes zu meinem Projekt hinzugefügt: uses Bigini;
Delphi-Quellcode:
private
{ Private-Deklarationen } BigIniFile : TBiggerIniFile; FFileName : String;
Delphi-Quellcode:
und die procedure TdfmForm1.FormShow(Sender: TObject) so abgeändert:
procedure TForm2.FormCreate(Sender: TObject);
begin FFileName := ExtractFilePath(Application.ExeName)+'Rebsorten.ini'; BigIniFile := TBiggerIniFile.Create(''); { no filename now} end;
Delphi-Quellcode:
Ich habe schon im Netz und in allen Foren nach einem Beispiel zum Einlesen einer ini Datei
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; 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 |
Re: Ini Datei mit Bigini in Listview einlesen
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; |
Re: Ini Datei mit Bigini in Listview einlesen
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. ![]() Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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