Tcl 在大文件中连续搜索模式的新术语的好方法是什么?

Tcl 在大文件中连续搜索模式的新术语的好方法是什么?,tcl,Tcl,AUT为特定函数运行创建日志,并将日志附加到中心文件中。 此文件中要搜索的行为: LatestTimeStamp>MyFunction SomeStep timeLapsed SOME_TIME_VALUE 每次AUT生成日志时,都会生成具有类似模式的新的多个日志,提取这些新日志需要它 我使用的简单方法是: 阶级结构 但该文件可能很大,将所有内容存储在一个读取输出变量中可能会导致溢出: set log [read [set fp [open [file join [file nor

AUT为特定函数运行创建日志,并将日志附加到中心文件中。 此文件中要搜索的行为:

LatestTimeStamp>MyFunction   SomeStep timeLapsed  SOME_TIME_VALUE
每次AUT生成日志时,都会生成具有类似模式的新的多个日志,提取这些新日志需要它

我使用的简单方法是:

阶级结构 但该文件可能很大,将所有内容存储在一个读取输出变量中可能会导致溢出:

set log [read [set fp [open [file join [file normalize $env(APPDATA)] Logs Action.log]]]]
是否可以使用组合来获取文件指针的当前位置,并使用它偏移到最后一个光标位置,然后每次都从该位置开始读取? 相同的Tcl命令选项是什么?

这样做:

seek [set fp [open $file]] $_fOffset
set txt [read $fp]
set _fOffset [tell $fp]
在这方面:

::itcl::class clsLogs {
    private {
        variable _fOffset 0     
    }
    public {
        method _fFreshRead {file args} {
            set options(-resetOffSet) false
            array set options $args         
            if {$options(-resetOffSet)} {
                set _fOffset 0
            }
            seek [set fp [open $file]] $_fOffset            
            set txt [read $fp]
            set _fOffset [tell $fp]
            close $fp
            return $txt
        }
    }
}

所以我猜命令是告诉和寻找。set-oldOffset[tell$fp]close$fp wait for fresh logs set-fp[open logpath r]seek$fp 0$oldOffset-freshLogs[read$fp]仍在测试..不能说-有一个执行循环-这是一个巨大的实时网络元素文件,可能有1000个元素,可能是GBs
::itcl::class clsLogs {
    private {
        variable _fOffset 0     
    }
    public {
        method _fFreshRead {file args} {
            set options(-resetOffSet) false
            array set options $args         
            if {$options(-resetOffSet)} {
                set _fOffset 0
            }
            seek [set fp [open $file]] $_fOffset            
            set txt [read $fp]
            set _fOffset [tell $fp]
            close $fp
            return $txt
        }
    }
}