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的作用,或者说我按这样子理解对不对?
我自己回答
问题1:在set lst_files [ split $str_files{,} ] ,字符串就被这样子分开,如:word1{,}word2{,}word3问题2:source [ file join $scriptDir tools.tcl ];file join是把tools.tcl 添加到$scriptDir中($scriptDir,目录名) join是进行字符串组合。
join $scriptDir tools.tcl 是把tools.tcl添加到$scriptDir 所代表的路径后面。
这类问题可以在script.net这类脚本编辑和调试工具上自己编例子,试出来,这样能提高自己分析能力.
再问一个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
SetAtt $fileRef "persistAs" "$MyFile"
SetRole $fileRef "owner" $project
Call $item Save
}
}
该函数大体功能能够明白,但是具体每一条语句是如何实现的,代表什么意思,不太明白
像Create,SetAtt, SetRole 几个命令 是实现了什么功能?
页:
[1]