Строковая карта работает с литералами, но не с переменными - PullRequest
0 голосов
/ 23 ноября 2018

Это скрипт, который я запускаю

set input_file [ open $ORIGINAL_TESTS_FILE r ];
set output_file  [ open $TESTS_FILE w ];    

set CLASS_NAME "RandTest";
set NEW_CLASS_NAME "JuanDeLosPalotes";

while { [gets $input_file line] >= 0 } {
   #echo $line
   # Replacing string
   set line [ string map { "RandTest" "JuanDeLosPalotes" } $line ];
   #echo $line
   puts $output_file $line
}
close $input_file
close $output_file

Он читает текстовый файл и заменяет RandTest на JuanDeLosPalotes, где бы он ни находил.

Однако, если я заменю эту строку

set line [ string map { "RandTest" "JuanDeLosPalotes" } $line ];

С этой строкой

set line [ string map { $CLASS_NAME $NEW_CLASS_NAME } $line ];

Не работает (строка остается неизменной).

Что я делаю не так?

1 Ответ

0 голосов
/ 23 ноября 2018

Исправлено !!!

Фигурные скобки предотвращают замену.Поэтому мне нужно было использовать кавычки.

set line [ string map "$CLASS_NAME $NEW_CLASS_NAME" $line ];

На всякий случай это кому-нибудь нужно.

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