当前位置: 代码迷 >> 其他开发语言 >> tcl脚本的一个有关问题:遍历文件夹
  详细解决方案

tcl脚本的一个有关问题:遍历文件夹

热度:5492   发布时间:2013-02-26 00:00:00.0
tcl脚本的一个问题:遍历文件夹
我用下面的代码找到了一个文件夹中的所有.c文件,做相关的处理
foreach f [glob nocomplain "*.c"] {
if {[string compare $f "ew_code.c"] == 0} {
continue
}

  regsub {\.c} $f {.o \\} newstr
puts $ifo $newstr
  //如果是最后一个.c,则
  //regsub {\.c} $f {.o} newstr
// puts $ifo $newstr
}
如何判断是最后一个.c文件

------解决方案--------------------------------------------------------
另外你这个问题的典型解决方案是join,而不是手动判断当前列表是不是在尾巴。
Perl code
puts [join your-list " \\\n"]
------解决方案--------------------------------------------------------
Practical Programming in Tcl and Tk, Fourth Edition
Chapter 5. Tcl Lists

另外Tcl里的array不是平常我们说的数组,而是一个字典(也叫hashmap之类的)。
------解决方案--------------------------------------------------------
有一个比较简单的方法可以实现对最后一个匹配项的处理,设置一个变量,在循环中每个都给这个变量赋值,循环结束之后这个变量中的内容就是最后一个的值:

[code=Per]set laststr " "
foreach f [glob nocomplain "*.c "] {
if {[string compare $f "ew_code.c "] == 0} {
continue
}

regsub {\.c} $f {.o \\} newstr
puts $ifo $newstr
set laststr $newstr
}

if {$laststr != " "} {
# 最后一个.c的处理
puts $ifo $laststr
}[/code]
  相关解决方案