⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas.~74~

📁 BMP存入xml文件中,同时也可以读出。包含两个实例
💻 ~74~
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, xmldom, XMLIntf, msxmldom, XMLDoc,EncdDecd;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    ListBox1: TListBox;
    Button1: TButton;
    OD: TOpenDialog;
    SD: TSaveDialog;
    Button2: TButton;
    Image1: TImage;
    Button3: TButton;
    GroupBox2: TGroupBox;
    Image2: TImage;
    Button4: TButton;
    TreeView1: TTreeView;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
  private
    FfileName:String;
    procedure getNodeTree(Const filename:String);
    procedure savetoxml(Const filename:String);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var BMPimg:TBitmap;
begin
  od.DefaultExt:='BMP';
  od.Filter:='bmp|*.bmp';
  if od.Execute then
  begin
    BMPimg:=TBitmap.Create;
    listbox1.Items.Add(od.FileName);
    bmpimg.LoadFromFile(od.FileName);
    image1.Picture.Bitmap:=bmpimg;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  sd.Filter:='xml|*.xml';
  sd.DefaultExt:='xml';
  if sd.Execute  then
    savetoxml(sd.FileName);
end;

procedure TForm1.Button4Click(Sender: TObject);
var XMLDoc:TXMLDocument;
    RootNode:IXMLNode;
    RootTNode:TTreeNode;
    i:integer;
begin
  od.DefaultExt:='xml';
  od.Filter:='xml|*.xml';
  if od.Execute then
  begin
    FfileName:=od.FileName;
    treeview1.Items.Clear;
    XMLDoc:=TXMLDocument.Create(od.FileName);
    xmldoc.DOMVendor:=GetDOMVendor('MSXML');
    XMLDoc.Active:=true;
    RootNode:=XMLDoc.DocumentElement;
    showmessage(RootNode.NodeName);
    RootTNode:=treeview1.Items.Add(nil,RootNode.NodeName);
    RootNode.ChildNodes.Nodes[0].Text;
    //showmessage(inttostr(RootNode.ChildNodes.Count));
    for i := 0 to RootNode.ChildNodes.Count - 1 do
      treeview1.Items.AddChild(RootTNode,RootNode.ChildNodes[i].NodeName);
    RootTNode.Expanded:=true;
    RootNode:=nil;
    xmldoc.Active:=false;
    //XMLDoc.Free;
  end;
end;

procedure TForm1.getNodeTree(const filename: String);
var XMLDoc:TXMLDocument;
    RootNode:IXMLNode;
    RootTNode:TTreeNode;
    i:integer;
begin
    treeview1.Items.Clear;
    XMLDoc:=TXMLDocument.Create(fFileName);
    xmldoc.DOMVendor:=GetDOMVendor('MSXML');
    XMLDoc.Active:=true;
    RootNode:=XMLDoc.DocumentElement;
    showmessage(RootNode.NodeName);
    RootTNode:=treeview1.Items.Add(nil,RootNode.NodeName);
    RootNode.ChildNodes.Nodes[0].Text;
    for i := 0 to RootNode.ChildNodes.Count - 1 do
      treeview1.Items.AddChild(RootTNode,RootNode.ChildNodes[i].NodeName);
    RootTNode.Expanded:=true;
    RootNode:=nil;
    xmldoc.Active:=false;
    XMLDoc.Free;
end;

procedure TForm1.savetoxml(const filename: String);
var memStr:Tmemorystream;
    strStr1,StrStr2,strstr3:TStringStream;
    XMLDoc:TXMLDocument;
    RootNode,ChildNode:IXMLNode;
    i:integer;
begin
  XMLDoc:=TXMLDocument.Create(nil);
  xmldoc.DOMVendor:=GetDOMVendor('MSXML');
  XMLDoc.Active:=true;
  ///XMLDoc.Encoding:='UTF-8';
  ///XMLDoc.Version:='1.0';
  ///XMLDoc.StandAlone:='yes';
  XMLDoc.DocumentElement:=XMLDoc.CreateNode('InforMation');
  RootNode:=XMLDoc.DocumentElement;
  for i := 0 to Listbox1.items.Count - 1 do
  begin
    ChildNode:=XMLDoc.CreateNode('img'+IntToStr(i+1));
    RootNode.ChildNodes.Add(ChildNode);
    memStr:=Tmemorystream.Create;
    strstr1:=TStringstream.Create('');
    memstr.LoadFromFile(listbox1.Items.Strings[i]);
    memstr.SaveToStream(strstr1);
    strstr2:=Tstringstream.Create(strstr1.DataString);
    strstr3:=TStringstream.Create('');
    EncodeStream(strstr2,strstr3);
    ChildNode.Text:=strstr3.DataString;
    strstr3.Free;
    strstr2.Free;
    strstr1.Free;
    memstr.Free;
  end;
  XMLDoc.SaveToFile(filename);
  XMLDoc.Active:=false;
  XMLDoc.Free;
end;

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var memStr:Tmemorystream;
    strStr1,StrStr2:TStringStream;
    BMPimg:TBitmap;
    XMLDoc:TXMLDocument;
    RootNode:IXMLNode;
    s:String;
begin
  BMPimg:=TBitmap.Create;
  XMLDoc:=TXMLDocument.Create(FfileName);
  xmldoc.DOMVendor:=GetDOMVendor('MSXML');

  XMLDoc.Active:=true;
  //XMLDoc.Encoding:='UTF-8';

  RootNode:=XMLDoc.DocumentElement;
  memstr:=TmemoryStream.Create;
  s:=RootNode.ChildNodes.Nodes[node.Text].Text;
  strstr1:=Tstringstream.Create('E:\delphi2006_WORKS\123.txt');
  strstr2:=Tstringstream.Create('');
  decodestream(strstr1,strstr2);
  strstr2.Position:=0;
  memstr.LoadFromStream(strstr2); //
  BMPimg.LoadFromStream(memstr);
  image2.Picture.Bitmap:=bmpimg;
  xmldoc.Active:=false;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -