set srcfile myres.res
set dstfile dtest.txt
if {[catch {open $srcfile r} res]} {
puts "Failed to open the source file: $srcfile; $res"
return 0
}
set hSrc $res
if {[catch {open $dstfile w+} res]} {
puts "Failed to open the destination file: $dstfile; $res"
return 0
}
set hDst $res
foreach line [split [read $hSrc] \n] {
if {[regexp {rdly=(.*)targ=(.*)trig=(.*)} $line match sub1]} {
puts $hDst "Rise Delay is $sub1"
}
if {[regexp {fdly=(.*)targ=(.*)trig=(.*)} $line match sub1]} {
puts $hDst "Fall Delay is $sub1"
}
}
close $hSrc
close $hDst
Tcl是一个库包,可以被嵌入应用程序,Tcl的库包含了一个分析器、用于执行内建命令的例程和可以扩充(定义新的过程)的库函数。应用程序可以产生Tcl命令并执行,命令可以由用户产生,也可以从用户接口的一个输入中读取(按钮或菜单等)。但Tcl库收到命令后将它分解并执行内建的命令,经常会产生递归的调用。
应用程序使用Tcl作为它的命令语言有三个好处:
1 Tcl提供了标准语法,一旦用户掌握了Tcl就可以很容易的发布命令给基于Tcl的程序。
2 Tcl实现了很多的功能,使你的工作变得很方便。
3 TCl可作为程序间通信的接口。
例如:
set a 22 //相当于C中的 a=22 a是一个变量这条命令分为三个域:1: set 2: a 3: 22
set使用于设置变量的值的命令,a、20 作为参数来传给它,a使它要操作的变量名,22是要付给的a值。
Tcl的命令名可以使内建的命令也可以是用户建的新命令,在应用程序中用函数Tcl_CreateCommand来创建。所有的参数作为字符串来传递,命令自己会按其所需来解释的参数的。命令的名字必须被打全,但 Tcl解释器找不到一同名的命令时会用 unknown命令来代替。