来自文件的TCL字符串匹配

时间:2013-10-18 21:07:58

标签: tcl

我正在尝试在TCL中的文件中找到一个字符串。使用wish控制台,我得到两个字符串之间的成功匹配。当我从文件中读取一个字符串并将其与其精确副本匹配时,它会失败。我可以在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
     }
}

1 个答案:

答案 0 :(得分:4)

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

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

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

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