通过将元素放置在一行中来搜索文件

时间:2015-06-10 15:09:54

标签: list tcl tk

我试图找出如何从文件中提取某个元素。它之前总是有4个元素,但它背后可以有无元素和无穷大元素。我想从这个文件中提取的元素可以命名为任何内容,但每行总是在同一个位置。文件的行格式如下......

$(eval $(call CreateTest, file, KeyElement_0 ...
$(eval $(call CreateTest, file, KeyElement_1 ...
$(eval $(call CreateTest, file, KeyElement_2 ...
...
$(eval $(call CreateTest, file, KeyElement_n ...

我希望能够拉出KeyElement并将其读入列表,但我目前正在这样做......

proc filterTests path {
    set f [listFromFile $path0/listfile]
    set f [lsearch -all -inline $f "KeyElement_*"]
    return $f
}

现在可行,但元素可能不一定遵循KeyElement_*格式,因此我需要能够对此进行说明。

修改

我用来从文件中读取的代码看起来像;

proc listFromFile {$path1} {
    set find {$(eval $(call CreateTest, file, *}
    upvar path1 path1
    set f [open $path1 r]
    while {[gets $f line] != -1} {
        if {[string match ${find} $line]} {
    set write [open listfile a]
    foreach writetofile $line {
    puts $write $writetofile
}
close $write

1 个答案:

答案 0 :(得分:0)

也许你可以试试

0.0190567;4.92035;11.0541;13.1457;

或其他一些。您当然必须根据需要修改实际的正则表达式。

如果有用,会展开。