Также убедитесь, что в
if {[string match {$*} $line}
отсутствует закрывающая скобка
if {[string match {$*} $line]}
Окончательный код должен быть таким.
proc parseFileContents {contents infoVar} {
upvar 1 $infoVar inf
set lineNum 0
foreach line [split $contents "\n"] {
incr lineNum; # Skip comment lines (?)
if {[string match {$*} $line]} continue; # Skip blank lines
if {[string trim $line] eq ""} continue; # Parse a "real" line
if {[scan $line "%s%s%s%s%s%s%f%f%s%s" a b c name d e value f g h] == 10} {
set inf($name) $value
} else {
# Oh dear, didn't work!
puts "warning: did not understand line $lineNum\n$line"
}
}
}
Если по-прежнему не удается, скопируйте файл содержимого.Помните, что «infoVar» должен быть именем существующего массива.