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

时间:2011-04-11 05:29:19

标签: 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 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逐个替换每个项目吗?

否则,如果使用的索引可能会很方便吗?

1 个答案:

答案 0 :(得分:0)

我假设您导入的文件正在描述蚀刻在硅芯片上的晶体管或其他电子元件。看起来文件格式是空格分隔的。这是一个建议,但你需要澄清这一点。

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