set filename D:/a/b/c/a.txt
set in [open $filename r]……
[/Quote]
proc test2 { } {
set filename D:/a/b/c/a.txt
set in [open $filename r]
set filename1 D:/a/b/c/b.txt
set out [open $filename1 a]
while { [gets $in line] != -1 } {
set list [split $line \ ]
set path [lindex $list 1]
set tmp [split $path '.']
set type [lindex $tmp 1]
append type \ file \ \" $path \"
puts $type
puts $out $type
}
close $in
close $out
}
set filename D:/a/b/c/a.txt
set in [open $filename r]
set filena……
[/Quote]
你这是将整个文件的内容不作任何处理直接进行copy到另一个文件中去的,我想是先把文件内容一行一行的读取,然后再在每一行的前面和后面分别加上一定的标志保存到另外一个文件中去。当我在一行一行读取时,例如:
输入文件infile.txt内容:
-dx D:\test\nilename\a.txt
-dy D:\TE\TE\B.ini
要求输出文件outfile.txt内容:
txt file "D:\test\nilename\a.txt"
ini file "D:\TE\TE\B.ini"
我用如下方法实现,但是不行
set in [open $infile.txt r]
set out [open $outfile.txt w]
while {[get $in line]>=0} {
set com_id [lindex $line 0]
set com_c [lindex $line 1]
if {$com_id=="-dx"} {
puts $out "txt file \"$com_c\""
} else {
puts $out "ini file \"$com_c\""
}
set filename D:/a/b/c/a.txt
set in [open $filename r]
set filename1 D:/a/b/c/b.txt
set out [open $filename1 a]
puts $out [read $in]
close $in
close $out