51Testing软件测试论坛

标题: tcl的问题 [打印本页]

作者: edwin_chen    时间: 2006-4-3 13:14
标题: tcl的问题
问题1:在tcl中  
   split string ?splitChars?
把字符串string按分隔符splitChars分成一个个单词,返回由这些单词组成的串。如果splitChars
是一个空字符{},string被按字符分开。如果splitChars没有给出,以空格为分隔符。

很明显,后面只能带一个参数,?splitChars?
那么现在针对这句话,我不知道如何理解,set lst_files [ split $str_files  {,} ] 因为其在后面是{,};
当然这个语句是对的,是公司产品的代码。

问题2:在tcl中
file的意思:进行文件名操作,用来操作文件或获取文件信息
join的意思:join命令是命令的逆。这个命令把list的所有元素合并到一个字符串中,中间以joinString分开。

但是看下面的语句,根据上面的说法,把file和join组合来看,好象总感觉不正确
source [ file join $scriptDir tools.tcl ]    (这是公司产品代码,也是正确的)

又想:
file 后面可以跟很多命令,所以我觉得file 和join应该是一个特殊命令,但是我没有查到,有没有人知道file join的作用,或者说我按这样子理解对不对?
作者: edwin_chen    时间: 2006-4-4 19:38
标题: 我自己回答
问题1:在set lst_files [ split $str_files  {,} ] ,字符串就被这样子分开,如:word1{,}word2{,}word3

问题2:source [ file join $scriptDir tools.tcl ];file join是把tools.tcl 添加到$scriptDir中($scriptDir,目录名)
作者: 天网    时间: 2006-4-5 10:43
join是进行字符串组合。
join $scriptDir tools.tcl 是把tools.tcl添加到$scriptDir 所代表的路径后面。

这类问题可以在script.net这类脚本编辑和调试工具上自己编例子,试出来,这样能提高自己分析能力.
作者: edwin_chen    时间: 2006-4-26 15:50
标题: 再问一个tcl的问题
proc main { MyFile MyExtension} {
  global project
  
  # MyFile is redefined to managed the use of the character "."
  # which is not supported in SCADE -script command call
  
  set MyFile "${MyFile}.${MyExtension}"

  foreach item $project {
    set fileRef [Create $project "FileRef"]
    SetAtt $fileRef "persistAs" "$MyFile"
    SetRole $fileRef "owner" $project
    Call $item Save [get $item pathname]
  }

}
该函数大体功能  能够明白,但是具体每一条语句是如何实现的,代表什么意思,不太明白
像Create,SetAtt, SetRole 几个命令 是实现了什么功能?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2