Разбор строк, содержащих имена переменных в Delphi - PullRequest
4 голосов
/ 07 декабря 2011

Я сейчас пишу приложение, в котором у меня есть функция:

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 будут автоматически заменены значениями переменных с тем же именем, но, похоже, я ошибаюсь. Есть ли способ получить результат переменной алгоритма, состоящей из строк между '' и значениями переменной?

Любое предложение (даже если оно требует серьезного изменения дизайна) будет высоко оценено.

Спасибо, сфинкс

Ответы [ 2 ]

11 голосов
/ 07 декабря 2011

Я не понял, что вы пытаетесь сделать, но здесь идет выстрел.

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);
5 голосов
/ 07 декабря 2011

Если речь идет о форматировании, у Delphi также есть команда форматирования в стиле C:

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

Показывает сообщение:

http://this/that/otherthing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...