File 如何在现有tcl文件中的两行文本之间写入?
我想在现有tcl文件的两行之间写入。例如,我想在第41行和第42行之间写一些文字。新文本应在第42行,42中的旧文本应转到43并重复,直到最后一行向下移动1 我试过了,但是文字被替换了 当前:File 如何在现有tcl文件中的两行文本之间写入?,file,tcl,file-handling,File,Tcl,File Handling,我想在现有tcl文件的两行之间写入。例如,我想在第41行和第42行之间写一些文字。新文本应在第42行,42中的旧文本应转到43并重复,直到最后一行向下移动1 我试过了,但是文字被替换了 当前: set bCheckIPs 1 if { $bCheckIPs == 1 } { set list_check_ips "\ ip:proc_sys_reset:5.0\ ip:processing_system7:5.5\ ip:xlconstant:1.1\ ip:axi_dma:7.1\ i
set bCheckIPs 1
if { $bCheckIPs == 1 } {
set list_check_ips "\
ip:proc_sys_reset:5.0\
ip:processing_system7:5.5\
ip:xlconstant:1.1\
ip:axi_dma:7.1\
ip:axis_data_fifo:2.0\
hls:trace_cntrl_32:1.4\
"
我的预期产出:
set bCheckIPs 1
if { $bCheckIPs == 1 } {
set list_check_ips "\
ip:proc_sys_reset:5.0\
ip:processing_system7:5.5\
ip:xlconstant:1.1\
ip:axi_dma:7.1\
ip:sample:1.0\
ip:axis_data_fifo:2.0\
hls:trace_cntrl_32:1.4\
"
我想在ip:axi\u dma:7.1\和ip:axis\u data\u fifo:2.0\之间添加ip:sample:1.0\anwser就在附近
使用该代码,您可以得到如下过程:
proc addtxtline {filename lineadd textadd} {
# where filename: the file
# lineadd: number of line to add - starting in zero
# textadd: text to add
set fp [open $filename]
set lines [split [read $fp] "\n"]
close $fp
set lines [linsert $lines $lineadd $textadd]
# Read a line with lindex, find a line with lsearch
# Replace a line with lset, replace a range of lines with lreplace
set fp [open $filename w]
puts $fp [join $lines "\n"]
close $fp
}
假设您的文件是“settings.txt”,您可以这样调用函数:
addtxtline settings.txt 7 "ip:sample:1.0\\"
萨卢多斯
学分: