有关Tcl脚本语言编程的问题
我现在有一个.res的文件,这个文件中包括以下两行测试结果:rdly=3.4405E-10targ=2.0084E-07trig=2.0050E-07fdly=3.121...
我现在有一个 .res 的文件,这个文件中包括以下两行测试结果:
rdly= 3.4405E-10 targ= 2.0084E-07 trig= 2.0050E-07
fdly= 3.1211E-10 targ= 1.0081E-07 trig= 1.0050E-07
现在我想写一个Tcl文件拥有功能如下:
1. 读这个 .res 文件并寻找到上述的那两行信息(这两行所在的行数未知)。
2. 生成一个 ASCII 的 .txt 文件,文件内容应当如下:
Rise Delay is [rdly 的测试结果,在这里应当是3.4405E-10]
Fall Delay is [fdly 的测试结果,3.1211E-10]
非常感谢! 展开
rdly= 3.4405E-10 targ= 2.0084E-07 trig= 2.0050E-07
fdly= 3.1211E-10 targ= 1.0081E-07 trig= 1.0050E-07
现在我想写一个Tcl文件拥有功能如下:
1. 读这个 .res 文件并寻找到上述的那两行信息(这两行所在的行数未知)。
2. 生成一个 ASCII 的 .txt 文件,文件内容应当如下:
Rise Delay is [rdly 的测试结果,在这里应当是3.4405E-10]
Fall Delay is [fdly 的测试结果,3.1211E-10]
非常感谢! 展开
3个回答
2014-05-11
展开全部
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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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命令来代替。
应用程序使用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命令来代替。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询