delphi_XML

时间:2014-02-08 08:56:15
【文件属性】:

文件名称:delphi_XML

文件大小:550KB

文件格式:RAR

更新时间:2014-02-08 08:56:15

delphi_XML

unit XMLexample; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, xmldom, XMLIntf, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters, StdCtrls, Buttons, cxContainer, cxListBox, msxmldom, XMLDoc; type TForm1 = class(TForm) XMLDocument1: TXMLDocument; lstSource: TcxListBox; lstTarget: TcxListBox; SpeedButton2: TSpeedButton; SpeedButton1: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; SpeedButton6: TSpeedButton; SpeedButton5: TSpeedButton; SpeedButton7: TSpeedButton; SpeedButton8: TSpeedButton; Button1: TButton; cxListBox1: TcxListBox; cxListBox2: TcxListBox; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton6Click(Sender: TObject); procedure SpeedButton5Click(Sender: TObject); procedure SpeedButton7Click(Sender: TObject); private { Private declarations } public procedure MoveUp(A: TcxListBox); //上移 procedure MoveDown(A: TcxListBox); //下移 procedure DeleteItem(A: TcxListBox); //删除 procedure ReLoadItems(A: TcxListBox; const Flag: Integer = 0); //重置 procedure CreateXML(APath:string); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin CreateXML('C:\Documents and Settings\Administrator\桌面\XML'); end; procedure TForm1.Button2Click(Sender: TObject); var Node: IXMLNode; Root: IXMLNode; //根节点 ParentNode: IXMLNode; //首节点 StrDir: string; xmlDocument: IXMLDocument; I: Integer; begin xmlDocument := TXMLDocument.Create(nil); StrDir := 'C:\Documents and Settings\Administrator\桌面\XMLConfig.xml'; xmlDocument.XML.LoadFromFile(StrDir); xmlDocument.Active := true; Root := xmlDocument.DocumentElement; //源字段 ParentNode:=Root.ChildNodes.FindNode('FieldsFromSource'); for I := 1 to ParentNode.ChildNodes.Count - 1 do begin Node:=ParentNode.ChildNodes[i]; cxListBox1.Items.Add(Node.ChildValues['FieldName']); end; //目标字段 ParentNode:=Root.ChildNodes.FindNode('FieldsFromTarget'); for I := 1 to ParentNode.ChildNodes.Count - 1 do begin Node:=ParentNode.ChildNodes[i]; cxListBox2.Items.Add(Node.ChildValues['FieldName']); end; end; procedure TForm1.CreateXML(APath: string); var xmlDocument: IXMLDocument; sDir: string; i:Integer; begin xmlDocument := TXMLDocument.Create(nil); with xmlDocument.XML do begin //开始写XML Add(''); Add(''); //源字段信息写入XML if lstSource.Count>0 then begin Add(''); Add('' + IntToStr(lstSource.Count) + ''); for I := 0 to lstSource.Count - 1 do begin Add(''); Add('' + IntToStr(i) + ''); Add(''+ lstSource.Items[i]+''); Add(''+ ''+''); Add(''+ ''+''); Add(''+ ''+''); Add(''+ ''+''); Add(''); end; Add(''); end else begin Add(''); Add('0'); Add(''); end; //目标字段写入XML if lstTarget.Count>0 then begin Add(''); Add('' + IntToStr(lstTarget.Count) + ''); for I := 0 to lstTarget.Count - 1 do begin Add(''); Add('' + IntToStr(i) + ''); Add(''+ lstTarget.Items[i]+''); Add(''+ ''+''); Add(''+ ''+''); Add(''+ ''+''); Add(''+ ''+''); Add(''); end; Add(''); end else begin Add(''); Add('0'); Add(''); end; Add(''); //XML注释 Add(''); Add(''); Add(''); Add(''); Add(''); Add(''); Add(''); Add(''); Add(''); Add(''); //XML结束 end; xmlDocument.Active := True; sDir := APath; if not DirectoryExists(sDir) then begin if not CreateDir(sDir) then begin ShowMessage('创建文件夹失败'); Exit; end; end; xmlDocument.SaveToFile(sDir + 'Config.xml'); end; procedure TForm1.DeleteItem(A: TcxListBox); var _Index: Integer; begin with A do begin if (Items.Count > 0) and (ItemIndex <> -1) then begin _Index := ItemIndex; Items.Delete(_Index); end; end; end; procedure TForm1.MoveDown(A: TcxListBox); var CurrIndex, LastIndex: Integer; begin with A do begin CurrIndex := ItemIndex; LastIndex := Items.Count; if ItemIndex <> -1 then begin if CurrIndex + 1 < LastIndex then begin Items.Move(ItemIndex, (CurrIndex + 1)); ItemIndex := CurrIndex + 1; end; end; end; end; procedure TForm1.MoveUp(A: TcxListBox); var CurrIndex: Integer; begin with A do begin if ItemIndex > 0 then begin CurrIndex := ItemIndex; Items.Move(ItemIndex, (CurrIndex - 1)); ItemIndex := CurrIndex - 1; end; end; end; procedure TForm1.ReLoadItems(A: TcxListBox; const Flag: Integer); begin end; procedure TForm1.SpeedButton1Click(Sender: TObject); begin MoveDown(lstSource); end; procedure TForm1.SpeedButton2Click(Sender: TObject); begin MoveUp(lstSource); end; procedure TForm1.SpeedButton3Click(Sender: TObject); begin DeleteItem(lstSource); end; procedure TForm1.SpeedButton5Click(Sender: TObject); begin MoveDown(lstTarget); end; procedure TForm1.SpeedButton6Click(Sender: TObject); begin MoveUp(lstTarget); end; procedure TForm1.SpeedButton7Click(Sender: TObject); begin DeleteItem(lstTarget); end; end.


【文件预览】:
XML
----__history()
--------XMLexample.pas.~49~(6KB)
--------XMLexample.pas.~48~(5KB)
--------XMLexample.pas.~50~(6KB)
--------XMLexample.dfm.~7~(3KB)
--------XMLexample.pas.~47~(5KB)
--------XMLexample.dfm.~1~(334B)
--------XMLexample.pas.~53~(7KB)
--------XMLexample.pas.~54~(7KB)
--------XMLexample.pas.~51~(6KB)
--------XMLexample.dfm.~6~(3KB)
--------XMLexample.pas.~55~(7KB)
--------XMLexample.dfm.~3~(3KB)
--------XMLexample.dfm.~8~(3KB)
--------XMLexample.pas.~52~(6KB)
--------XMLexample.dfm.~4~(3KB)
--------XMLexample.dfm.~10~(3KB)
--------XMLexample.dfm.~9~(3KB)
--------XMLexample.pas.~46~(5KB)
--------XMLexample.dfm.~5~(3KB)
--------XMLexample.dfm.~2~(2KB)
----XMLexample.dfm(3KB)
----XML.res(5KB)
----XML.identcache(205B)
----XML.dpr(235B)
----XML.dproj(4KB)
----XML.exe(1.19MB)
----XMLexample.pas(7KB)
----XMLexample.dcu(12KB)
----XML.dproj.local(824B)

网友评论

  • 很好的,有启发
  • 有积极的借鉴意义,只是对代码例子没有详细说明
  • 不能用,还是要谢谢

相关文章