我对tcl脚本一窍不通啊,请大神们帮帮忙吧!
我想在一个文件t1.txt中找到其中的 { data_out <= 16‘h41; // Design Version Number } 一行,并把其中的41读出来,加1后再放回去,tcl代码和文件如下,错误提示是can not find channel named "e:/tcl_exam/t1.txt",而我用set file这个语句是可以看到e:/tcl_exam/t1.txt的,请大神们给给建议,看看是哪里出问题了,小弟感激不尽啊!!
文件t1.txt:
module te();
vercontro<= i+1;
data_out <= 16'h41; // Design Version Number
endmodule
tcl代码:
set file "e:/tcl_exam/t1.txt"
set fileid [open $file r+];
while {-1 != [gets $fileid line] } {
if { [regexp {^\s+data_out <= \d+\'h([[:xdigit:]]+); // Design Version Number $ } $line match version_number] } {
scan $version_number "%x" decimal_value
incr decimal_value
set new_version_number [format "%X" $decimal_value]
regsub h${version_number} $line h${new_version_number} line }
puts $fileid $line
}
close $file