在Delphi中解析包含变量名的字符串

时间:2011-12-07 16:14:58

标签: string delphi variables casting

我正在编写一个应用程序,其中我的函数如下:

var a,b,c, algorithm: string
begin

a := some-operations-with-regular-expressions;
b := some-other-operation-with-regular-expressions;
c := just-similar-to-b-but-different;

algorithm := IniFile.ReadString('XML Info','AlgorithmExpression', ''); 
//algorithm is fetched like 'http://wwww.urlhere' + a + '/' + b + '/' + c
DoDownload (algorithm, true);
end;

现在我的期望是拥有a,b& c自动替换为具有相同名称的变量的值,但看起来我错了。有没有办法让算法变量的结果由''和变量值之间的字符串组成?

任何建议(即使它要求进行重大的重新设计)都会非常感激。

谢谢, sphynx

2 个答案:

答案 0 :(得分:11)

我不明白你想要做什么,但是这里有所帮助。

IniFile应包含以下内容:

[XML Info]
AlgorithmExpression=http://wwww.urlhere[<a>]/[<b>]/[<c>]

你可以这样做:

algorithm := IniFile.ReadString('XML Info','AlgorithmExpression', ''); 
algorithm := StringReplace(algorithm,'[<a>]',a,[]); 
algorithm := StringReplace(algorithm,'[<b>]',b,[]); 
algorithm := StringReplace(algorithm,'[<c>]',c,[]); 
DoDownload (algorithm, true);

答案 1 :(得分:5)

如果这是关于格式化的,Delphi也有C风格格式命令:

var
  output: String;
begin
  output := Format('http://%s/%s/%s', ['this', 'that', 'otherthing']);
  ShowMessage(output);
end;

显示消息:

  

http://this/that/otherthing