📄 xmlconfig.~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 + -