Text TCL-将文本文件中的行提取到TCL脚本
嗯,我试图在网上找到我的答案,但实际上我没有,我真的需要帮助Text TCL-将文本文件中的行提取到TCL脚本,text,input,tcl,extract,Text,Input,Tcl,Extract,嗯,我试图在网上找到我的答案,但实际上我没有,我真的需要帮助 我有一个文本文件(file.txt),其中包含: 还有一个TCL脚本,允许我读取每行的值: 问题是,当我想要用我的TCL脚本完成文本文件的第1行时,一些信息丢失,额外的字符丢失 如何获得完整的字符串(文本文件的第1行) 非常感谢 您打开文件进行读取,但实际上并没有从中读取$infle只是(基本上)指向文件描述符的指针,而不是文件的内容: % set fh [open file.txt r] % puts $fh file3
- 我有一个文本文件(file.txt),其中包含:
- 还有一个TCL脚本,允许我读取每行的值:
非常感谢 您打开文件进行读取,但实际上并没有从中读取$infle只是(基本上)指向文件描述符的指针,而不是文件的内容:
% set fh [open file.txt r]
% puts $fh
file3
从文件中读取的惯用方法:逐行读取
set fh [open "C:/Users/00_file/file.txt" r]
set data [list]
while {[get $fh line] != -1} {
lappend data [split $line ,]
}
close $fh
或者,读取整个文件并在换行符上拆分
set fh [open "C:/Users/00_file/file.txt" r]
set data [lmap line [split [read -nonewline $fh] \n] {split $line ,}]
close $fh
然后访问数据
set Namepath [lindex $data 0 0] ;# first line, first field
set dis [lindex $data 1 1] ;# second line, second field
Tcl代码如下所示:
设置文件[打开c:/filename.txt]
设置文件\u设备[读取$file]
设置数据[拆分$file\u设备“\n”]
对于{set count 0}{$count<2}{incr count}{
放入$data
#每件作品都会打印一行。
#split/n用于获取每行的结尾。
#打开命令以给定路径打开文件。
#read命令用于读取打开的文件。
}
关闭$file
请打断一下
好吗。改进你的问题?1) file.txt
恰好包含许多行,但是您使用的split
会打断由逗号(“,”)而不是换行符(“\n”)分隔的内容。2) 你的措辞中的“完整行”是什么?您至少应该以符合您期望的方式(实际上不是您所看到的)记录file.txt
中的摘录。
set fh [open "C:/Users/00_file/file.txt" r]
set data [lmap line [split [read -nonewline $fh] \n] {split $line ,}]
close $fh
set Namepath [lindex $data 0 0] ;# first line, first field
set dis [lindex $data 1 1] ;# second line, second field