Es schaut so aus wie Tyrael Y. gepostet hat.
Hab es jetzt noch nicht getestet, aber ich glaube wenn ich alle Sections in eine Stringlist einlese und diese dann in einer For-Schleife abarbeite wird immer die erste Section genommen da sie ja alle den gleichen Namen haben, oder?
Wie würde ich denn die Datei den als
XML eingelesen?
Delphi-Quellcode:
procedure INI2XML(const pINIFileName: string; const pXML: IXMLNode;
const AsAttributes: Boolean = true);
var
lINIFile: TIniFile;
lSections, lItems: TStringList;
iSections, iItems: integer;
lNode: IXMLNode;
begin
lINIFile := TIniFile.Create(pINIFileName); try
lSections := TStringList.Create; try
lItems := TStringList.Create; try
lINIFile.ReadSections(lSections);
for iSections := 0 to pred(lSections.Count) do
begin
lItems.Clear;
lINIFile.ReadSection(lSections[iSections],lItems);
lNode := pXML.AddChild(StringReplace(lSections[iSections],' ','',[rfReplaceAll]));
for iItems := 0 to pred(lItems.Count) do
begin
if AsAttributes then
lNode.Attributes[lItems[iItems]] :=
lINIFile.ReadString(lSections[iSections],lItems[iItems],'')
else
lNode.AddChild(lItems[iItems]).Text :=
lINIFile.ReadString(lSections[iSections],lItems[iItems],'');
end;
lNode := nil;
end;
finally lItems.Free; end;
finally lSections.Free; end;
finally lINIFile.Free; end;
end;
Diese Funktion z.B. nimmt ja auch lSections[iSections].
Würde also auch immer die erste Section nehmen...