Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tcl 如何将提取的值从一个文件放到另一个文件中_Tcl - Fatal编程技术网

Tcl 如何将提取的值从一个文件放到另一个文件中

Tcl 如何将提取的值从一个文件放到另一个文件中,tcl,Tcl,以下是从文件中提取的元素 Mg1.qna o a vss vss n 0.36 0.03 mult=4 $$UNI Mg1.qpa o a vcc vcc p 0.36 0.03 mult=6 $$UNI 现在,将上述元素替换到另一个包含以下内容的文件中 set name(A) qp18 set source(A) vccgated_1p24 set drain(A) vldoout set gate(A) pgtbias set bulk(A) vccgated_1p24 set

以下是从文件中提取的元素

Mg1.qna o a vss vss n 0.36 0.03 mult=4 $$UNI

Mg1.qpa o a vcc vcc p 0.36 0.03 mult=6 $$UNI
现在,将上述元素替换到另一个包含以下内容的文件中

set name(A) qp18

set source(A) vccgated_1p24

set drain(A) vldoout

set gate(A) pgtbias

set bulk(A) vccgated_1p24

set inst(A) 1

set name(B) qp2

set source(B) vccgated_1p24

set drain(B) vccgated_1p24

set gate(B) vccgated_1p24

set bulk(B) vccgated_1p24

set inst(B) 1

set bulk(B) vccgated_1p24
我可以使用regsub逐个替换每个项目吗


否则,如果使用索引,那会很方便吗?

我假设您导入的文件描述的是晶体管或蚀刻在硅芯片上的其他电子元件。文件格式似乎是以空格分隔的。这里有一个建议,但你需要进一步澄清

set inputFile [open INPUT_FILE_NAME_GOES_HERE]
set outputFile [open OUTPUT_FILE_NAME_GOES_HERE w]
set lineNumber 0
while {[gets $inputFile line] >= 0} {
    set items [split $line]
    # assumes you have at most 8 lines for components A through H in your file
    set letter [lindex {A B C D E F G H} $lineNumber]
    puts $outputFile "set name($letter) [lindex $items 0]"
    puts $outputFile "set source($letter) [lindex $items 1]"
    # as many more puts commands as you need for all the columns
}
close $inputFile
close $outputFile

“提取的元素”中的10个字段如何映射到6个数组中?您已经发布了十几次几乎相同的问题。@Joseph Bui:什么是B C D E F G H。。。。。我错误地认为这些应该是int类型的……对不起,我颠倒了参数。{A B C D E F G H}应位于$lineNumber之前(答案中已确定)。