gpt4 book ai didi

tcl - 使用 TCL 从文件中读取多行?

转载 作者:行者123 更新时间:2023-12-04 20:14:37 24 4
gpt4 key购买 nike

如何使用 tcl 读取文件中的多行?也就是说,gets 命令默认读取直到找到新行,如何更改此行为以读取文件直到找到特定字符?

最佳答案

如果你不介意多读一点,你可以通过循环使用 getsread 来完成:

set data ""
while {[gets $chan line] >= 0} {
set idx [string first $whatToLookFor $line]
if {$idx == -1} {
append data $line\n
} else {
# Decrement idx; don't want first character of $whatToLookFor
append data [string range $line 0 [incr idx -1]]
break
}
}
# Data has everything up to but not including $whatToLookFor

如果您正在寻找多行模式,我建议您将整个文件读入内存并进行处理。这比尝试编写正确的匹配器要容易得多:

set data [read $chan]
set idx [string first $whatToLookFor $data]
if {$idx > -1} {
set data [string range $data 0 [incr idx -1]]
}

后一种形式也适用于二进制数据。如果您这样做,请记住首先fconfigure $chan -translation binary

关于tcl - 使用 TCL 从文件中读取多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12614488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com