我正在尝试在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
}
}
答案 0 :(得分:4)
您需要使用line
变量上的美元符号来获取其值:
if [ string match $::StringToFind $line ] {
此外,引用if
命令的条件是一个好习惯:
if {[string match $::StringToFind $line]} {