1

我正在尝试在 TCL 的文件中查找字符串。使用希望控制台,我在两个字符串之间成功匹配。当我从文件中读取字符串并将其与其精确副本匹配时,它会失败。我可以在 Eclipse 中看到变量包含完全相同的字符串……除非后面有不可见的字符。以下代码从不返回 1,即使变量包含完全相同的字符串。

set fileId [open $::InputFile "r"]
set file_data [read $fileId]
#  Process data file
set data [split $file_data "\n"]
#search for string
foreach line $data {
     set x $::StringToFind
     set y $line
    set z [string match x y]
    puts $z
     if [ string match $::StringToFind line ] {
         return 1
     }
}
4

1 回答 1

4

您需要在line变量上使用美元符号来获取其值:

     if [ string match $::StringToFind $line ] {

此外,引用命令的条件是一个好习惯if

     if {[string match $::StringToFind $line]} {
于 2013-10-18T21:34:00.097 回答