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

📄 xmlconfig.~pas

📁 新旧人事软件数据结转程序 从sqlserver转至VF数据
💻 ~PAS
字号:
unit XmlConfig;
interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, xmldom, XMLIntf, StdCtrls, ComCtrls, msxmldom, XMLDoc;type  TXmlConfig = class  private    FXmldocument:TXMLDocument;    //FFCTreeView :TfcTreeView;    function GetXmlNode(aIXMLNode:IXMLNode;aXmlNodeName: String):IXMLNode;    function GetParam(Name:String):String;   // procedure XmlnodeToFCTreenode(Xmlnode: IXMLNode;aFCTreeNode:TfcTreeNode);  public    function GetServerName():String;    function GetUserName():String;    function GetPassWord():String;    function GetGatherSwitch():string;    function GetServerURL : string;         //得到数据服务器的URL    function GetPort():String;              //得到端口号    function GetPictureDir : string;    function GetNewTime : string;           //得到最新数据的时间    procedure WriteNewTime(newTime : string);    function EngToChina(EnglishField:string):string;overload;    function EngToChina(TableName,EnglishField:string):string;overload;    function WriteString(lNode, lText : string): Boolean;    //procedure InitMenuFCTreee( aFCTreeView : TfcTreeView);    constructor create();  end;implementation{ TXmlConfig }//根据给定的字段英文名得到中文名//function TXmlConfig.EngToChina(EnglishField: string): string;var  NodeLevel1:IXMLNode;  i,j:integer;beginNodeLevel1:=GetXmlNode(FXmldocument.DocumentElement,'EngSwitchChina'); for i:=0 to NodeLevel1.ChildNodes.Count-1 do   for j:=0 to NodeLevel1.ChildNodes.Nodes[i].ChildNodes.Count-1 do     begin     //     if trim(NodeLevel1.ChildNodes.Nodes[i].ChildNodes.Nodes[j].NodeName) =  EnglishField then     begin       Result:=NodeLevel1.ChildNodes.Nodes[i].ChildNodes.Nodes[j].Text;       break;     end;     end;end;constructor TXmlConfig.create;begintry  FXmldocument := TXMLDocument.Create(Application);  FXmldocument.LoadFromFile(ExtractFileDir(Application.ExeName)+'\112.xml');  FXmldocument.Active := True;except  raise Exception.Create('配置文件不存在,请添加配置文件');end;end;//根据给定的数据表表名和该表内的英文字段名,得到该表的中文字段名//function TXmlConfig.EngToChina(TableName, EnglishField: string): string;var  NodeLevel1,NodeLevel2:IXMLNode;  i:integer;beginNodeLevel1:=GetXmlNode(FXmldocument.DocumentElement,'EngSwitchChina');NodeLevel2:=GetXmlNode(NodeLevel1,TableName);  for i:=0 to NodeLevel2.ChildNodes.Count-1 do    begin      if NodeLevel2.ChildNodes.Nodes[i].NodeName = EnglishField then        begin          Result:=NodeLevel2.ChildNodes.Nodes[i].Text;          break;        end;    end;end;//得到数据库开关数据//function TXmlConfig.GetGatherSwitch: string;begin  Result:=GetParam('GatherSwitch');end;function TXmlConfig.GetParam(Name: String): String;begin  result := GetXmlNode(FXmldocument.DocumentElement,name).Text;end;//得到密码//function TXmlConfig.GetPassWord: String;begin  Result:= GetParam('PassWord');end;//得到端口号//function TXmlConfig.GetPort: String;begin  result := GetParam('Port');end;//得到服务器名称//function TXmlConfig.GetServerName: String;begin  result := GetParam('ServerName');end;//得到用户名//function TXmlConfig.GetUserName: String;begin  result := GetParam('UserName');end;//根据一个节点和这个节点下子节点的名称得到该子节点//function TXmlConfig.GetXmlNode(aIXMLNode:IXMLNode;aXmlNodeName: String): IXMLNode;var  i:integer;begin  Result := Nil;for i:=0 to aIXMLNode.ChildNodes.Count-1 do  if aIXMLNode.ChildNodes.Nodes[i].NodeName = aXmlNodeName then    begin      Result:=aIXMLNode.ChildNodes.Nodes[i];      break;    end;                                       end;//初始化树//{procedure TXmlConfig.InitMenuFCTreee(aFCTreeView: TfcTreeView);var
  NodeLevel1:IXMLNode;begin  FFCTreeView :=aFCTreeView;  aFCTreeView.Items.Add(nil,'应用程序');  NodeLevel1:=GetXmlNode(FXmldocument.DocumentElement,'MenuConfig');
  XmlnodeToFCTreenode(NodeLevel1,FFCTreeView.TopItem);
end;
 }
//递归调用//xml节点到树形节点之间的转化//
{procedure TXmlConfig.XmlnodeToFCTreenode(Xmlnode: IXMLNode;  aFCTreeNode: TfcTreeNode);
var
  node1:TfcTreeNode;
  i:Integer;
begin
  if Xmlnode.ChildNodes.Count>0 then
  for i:=0 to Xmlnode.ChildNodes.Count-1 do
  begin
    node1:= FFCTreeView.Items.AddChild(aFCTreeNode,(Xmlnode.ChildNodes.Nodes[i].NodeName));
    XmlnodeToFCTreenode(Xmlnode.ChildNodes.Nodes[i],node1);
  end;
end;
 }
function TXmlConfig.GetServerURL: string;begin
  Result := GetParam('URL');
end;

function TXmlConfig.GetNewTime: string;begin
  Result := GetParam('NewTime');
end;

procedure TXmlConfig.WriteNewTime(newTime: string);begin
  GetXmlNode(FXmldocument.DocumentElement,'NewTime').NodeValue := newTime;
end;

function TXmlConfig.WriteString(lNode, lText: string): Boolean;
begin
  try
    GetXmlNode(FXmldocument.DocumentElement, lNode).Text := lText;
    FXmldocument.SaveToFile(ExtractFileDir(Application.ExeName)+'\MainConfig.xml');
    Result := True;
  except
    Result := False;
  end;
end;

function TXmlConfig.GetPictureDir: string;begin
  Result := GetParam('BackImage');
end;

end.
 

⌨️ 快捷键说明

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