Конвертировать INI файл в XML

Previous  Top  Next

    
 

 

 

Code:

uses XMLIntf, XMLDoc, INIFiles;

 

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;

 

 

©Drkb::03102

Взято с Delphi Knowledge Base: http://www.baltsoft.com/