Einzelnen Beitrag anzeigen

schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#6

Re: TINIFile, mehrere gleiche Sections?

  Alt 19. Feb 2010, 09:54
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...
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat