Hallo,
ich habe ein Problem beim auslesen der Namen der Sections einer INI Datei. Also ich meine diese Namen:
[xxxx]<=Namen dieser Section
y=z
Und möchte nun nacheinander aus jeder Section etwas auslesen, das Problem ist eben, dass ich weder weiß wie viele Sections es gibt, noch wie sie heißen.
Ich habe mir jetzt folgendes überlegt:
1.) Auslesen wie viele Sections gibt es
2.) Alle Section-Namen in eine unsichtbare Combobox laden
3.) Mit einer FOR Schleife 1 to anzahl-der-Sections zählen und in der Schleife eine Variable mitzählen lassen welches Item aus der Combobox geladen werden muss.
Die Fuction zu auslesen, wei viele Sections es gibt:
Delphi-Quellcode:
{FUNCTION VON www.dsdt.info}
function INISectionsCount(const AFilename: String): Integer;
var ISectionCount: Integer;
i: Integer;
SCurr: String;
SLIni: TStringList;
begin
SLIni := TStringList.Create;
ISectionCount := 0;
try
SLIni.LoadFromFile(AFilename);
If SLIni.Count <> 0 then
begin
For i := 0 to SLIni.Count - 1 do
begin
SCurr := SLIni.Strings[i];
If (SCurr <> '') and (SCurr[1] = '[') and (SCurr[Length(SCurr)] = ']') then
Inc(ISectionCount);
end;
end
finally
SLIni.Free;
end;
Der auslese teil:
Delphi-Quellcode:
uses: inifiles;
var ini01: tinifile
var anzahlsections, zaehler:integer;
var einlesen1, einlesen2: real;
var pfad: string;
anzahlsections:=0;
einlesen1:=0;
einlesen2:=0;
zaehler:=-1;
anzahlsections:=INISectionsCount('kvload.ini');
ini01:=TIniFile.create(ExtractFilePath(ParamStr(0))+'kvload.ini');
try
ini01.ReadSections(combobox3.Items);
finally
ini01.Free;
end;
for i:= 1 to anzahlsections do
begin
zaehler:=zaehler+1;
pfad:=combobox3.Items[zaehler];
ini01:=TIniFile.create(ExtractFilePath(ParamStr(0))+'kvload.ini');
try
einlesen1:=ini01.ReadFloat(pfad,'Untersection',0);
finally
ini01.Free;
end;
einlesen2:=einlesen2+einlesen1;
end;
Das Problem ist jetzt, das beim addieren von einlesen1 und einlesen2 ungenauhigkeiten auftreten. Ich glaube das das am Code liegt, weil der ja ziemlich unpraktisch ist, aber mir ist keine andere Möglichkeit bekannt Anzahl und Namen von Sections aus einer INI Datei auszulesen.
Vielleicht kenn ja einer eine einfachere Methode oder sieht den Fehler....