现在有一个文本文件,文件内容类似下面: <Database Hostname = "localhost" Username = "root" Password = "root" Name = "test" Port = "3306" Type = "1">
<Listen Host="0.0.0.0"
WorldServerPort = "8129">
....... 我想编写一个函数来读取Database 内的Hostname后面的值(即localhost)、Username后面的值(root)、以及:onewow、3306、0.0.0.0等数据。 可能说的不太清楚,不知道有没有人能够提供一下思路或者程序代码?
<Listen Host="0.0.0.0"
WorldServerPort = "8129">
....... 我想编写一个函数来读取Database 内的Hostname后面的值(即localhost)、Username后面的值(root)、以及:onewow、3306、0.0.0.0等数据。 可能说的不太清楚,不知道有没有人能够提供一下思路或者程序代码?
///定义一个函数MidStr,三个参数分别是要提取的字符,左特征字符,右特征字符
function MidStr(StrSource,StrLeft,StrRight:string):string;
var PosLeft,PosRigth,PosStart,StrLen:integer;
begin
PosLeft:=pos(StrLeft,StrSource);
PosRigth:=pos(StrRight,StrSource);
StrLen:=PosRigth-PosLeft-length(StrLeft);
PosStart:= PosLeft+length(StrLeft);
if (PosLeft>0) and (PosRigth>PosLeft) then
begin
Result:=copy(StrSource,PosStart,StrLen);
end else Result:='';
end;////////////////调用
var
StrSource,StrLeft,StrRight:string;
begin
StrSource:='<Database Hostname = "localhost" Username = "root" Password = "root" Name = "test" Port = "3306" Type = "1" >';
StrLeft:='Hostname = "';
StrRight:='" Username ';
edit1.Text := MidStr(StrSource,StrLeft,StrRight);//这里赋值给edit1控件
end;
var
FDoc: IXMLDOMDocument;
FNode: IXMLDOMNode;
begin
FDoc := CoDOMDocument.Create;
if FDoc.loadXML('Your Data') then
begin
FNode := FDoc.selectSingleNode('Database/Hostname');
if Assigned(FNode) then
Result := FNode.nodeValue; // get value
end;
end;