![]() |
Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
Also ich bin gerade dabei die Sektionen, Abschnitte & Werte jeweils in eine Stringlist zu packen. Es funktioniert eigentlich alles richtig, außer das Auslesen der Werte. Da bekomm ich ledliglich die Werte immer von dem letzten Abschnitt.
Wie bekomm ich es jetzt hinn, dass ALLE Werte von allen Abschnitten in meiner Stringlist vorhanden sind. Hier ein Auszug von meinem Code:
Delphi-Quellcode:
procedure TFrmHpt.OpenIniAndFillOutDB(inilist: TStringList);
var i, ii, jj, j, x, Value, AbschnittsZähler: Integer; Modul, Abschnitt, fullFileName: String; ini: TIniFile; Sektionen, Werte, Schlüssel, Abschnitte : TStringList; begin //ShowMessage((inilist.Strings[2])); for i := 0 to inilist.Count-1 do begin ini := TIniFile.Create(inilist.Strings[i]); Sektionen := TStringList.Create; Abschnitte := TStringList.Create; Schlüssel := TStringlist.Create; Werte := TStringList.Create; fullFileName := inilist.Strings[i]; Modul := ExtractFileName(fullFileName); // Dateiname aktueller Ini i z.b hphabirgendwas.ini; AbschnittsZähler := INISectionsCount(fullFileName); // Abschnittszäher = Wie viele Abschnitte gibt es in der aktuellen Ini Ini.ReadSections(Sektionen); // Jetzt sind alle Sektionen in der StringList Sektionen //Alle Abschnitte in die Stringlist Abschnitte packen for j := 0 to Sektionen.Count-1 do // Schleife und durch jede Sektion durchgehen begin ini.ReadSection(Sektionen.Strings[j], Abschnitte); end; // Alle Werte mit Abschnitten davor in die Stringlist Werte packen for jj := 0 to Abschnitte.Count-1 do begin ini.ReadSectionValues(Sektionen.Strings[jj], Werte); //<-- Da muss irgendwo der Fehler liegen end; Sektionen.SaveToFile ('C:\Users\adminn\Desktop\aTest\Sektionen.txt'); Abschnitte.SaveToFile ('C:\Users\admin\Desktop\aTest\Abschnitte.txt'); Werte.SaveToFile ('C:\Users\admin\Desktop\aTest\Werte.txt'); |
AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
Erzeuge die IniFile-Instanz mal außerhalb der Schleife
|
AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
Jetzt sagt er mir :
Listenindex überschreitet das Maximum(1637344) |
AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
Wo?
|
AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
Zitat:
|
AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
Poste noch einmal den aktuellen Code
|
AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
Hier:
Delphi-Quellcode:
procedure TFrmHpt.Import1Click(Sender: TObject);
var Pfad: string; IniPfade: TStringlist; begin IniPfade := TStringList.Create; processing := True; try Application.CreateForm(TFrmLoading, FrmLoading); SelectDirectory('Ordner auswählen', '' ,Pfad); FrmLoading.Show; GetFilesInDirectory(Pfad, '*.ini', IniPfade, True, True ); OpenIniAndFillOutDB(IniPfade); FrmLoading.Hide; finally processing := False; IniPfade.Free; end; end; // readSections = alle sektionen auslesen // readsection = bestimmte sektion auslesen procedure TFrmHpt.OpenIniAndFillOutDB(inilist: TStringList); var i, ii, jj, j, x, Value, AbschnittsZähler: Integer; Modul, Abschnitt, fullFileName: String; ini: TIniFile; Sektionen, Werte, Schlüssel, Abschnitte : TStringList; begin //ShowMessage((inilist.Strings[2])); for i := 0 to inilist.Count-1 do begin ini := TIniFile.Create(inilist.Strings[i]); Sektionen := TStringList.Create; Abschnitte := TStringList.Create; Schlüssel := TStringlist.Create; Werte := TStringList.Create; fullFileName := inilist.Strings[i]; Modul := ExtractFileName(fullFileName); // Dateiname aktueller Ini i z.b hphabirgendwas.ini; AbschnittsZähler := INISectionsCount(fullFileName); // Abschnittszäher = Wie viele Abschnitte gibt es in der aktuellen Ini Ini.ReadSections(Sektionen); // Jetzt sind alle Sektionen in der StringList Sektionen //Alle Abschnitte in die Stringlist Abschnitte packen for j := 0 to Sektionen.Count-1 do // Schleife und durch jede Sektion durchgehen begin ini.ReadSection(Sektionen.Strings[j], Abschnitte); end; // Alle Werte mit Abschnitten davor in die Stringlist Werte packen for jj := 0 to Abschnitte.Count-1 do begin ini.ReadSectionValues(Sektionen.Strings[jj], Werte); end; Sektionen.SaveToFile ('C:\Users\admin\Desktop\aTest\Sektionen.txt'); Abschnitte.SaveToFile ('C:\Users\admin\Desktop\aTest\Abschnitte.txt'); Werte.SaveToFile ('C:\Users\admin\Desktop\aTest\Werte.txt'); end; // Jeweile Ini von inilist.Strings[i] öffnen. Sektionen / Values / Modulname holen und in Datenbank schreiben. // Überprüfen ob bereits vorhanden, wenn nicht dann eintragen. end; |
AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
Delphi-Quellcode:
Auch wenn es passen sollte:
// Alle Werte mit Abschnitten davor in die Stringlist Werte packen
for jj := 0 to Abschnitte.Count-1 do begin ini.ReadSectionValues(Sektionen.Strings[jj], Werte); //<-- Da muss irgendwo der Fehler liegen end; for jj := 0 to Abschnitte.Count-1 do ini.ReadSectionValues(Sektionen.Strings[jj], Werte); das ist zumindestens ungeschickt. Gruß K-H |
AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
.. steht in inilist.Strings[i] der komplette Pfad (mit iniNamen) der ini Datei?
Grüße Klaus |
AW: Werte aus einer Ini Datei Lesen funktioniert nicht so ganz
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 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