2016-04-14 22 views
1

私はtclのファイルに複数の行を書きます。私は書き出しに成功しましたが、いくつかの行の後に空白行を入れ、それぞれの行にコメントを追加したいと考えました。tclのファイルに複数の行を書く、空白行とコメントを追加する方法

ここに私のコードです。

set tmpdir "set_var tmpdir $tmpdir_path" 
set vdd "set vdd $voltage" 
set gnd "set gnd 0.0" 
set temp "set temp $temperature" 
set rundir "set topdir $topdir" 




set filename "char_run.tcl" 
set fileId [open $filename "w"] 
puts $fileId $tmpdir 
puts $fileId $vdd 
puts $fileId $gnd 
puts $fileId $rundir 
close $fileId 

各行に空白行とコメントを追加する方法をご提案ください。もちろん

+0

あなたはTclファイルを書き込むしようとしている場合、私は例えば、 'list'代わりに、文字列の連結を使用することをお勧め'puts $ fileId [list set_var tmpdir $ tmpdir_path'を実行します。これは、パスに例えばパスがある場合にはチョークしない有効なTclコマンドを構築します。 –

答えて

1
puts $fileId "$tmpdir\t;# a comment and a blank line\n" 

puts $fileId "$tmpdir\n# a comment on its own line and then a blank line\n" 

puts $fileId "# a comment, a command invocation, and a blank line\n$tmpdir\n" 

、あなたはこのようにそれを行うことができます:

lappend output "set_var tmpdir $tmpdir_path" "this is a temporary directory"        0 
lappend output "set vdd $voltage"   "voltage gets its name from Alessandro Volta (1745 – 1827)" 1 
lappend output "set gnd 0.0"     "that's the ground voltage"         1 
lappend output "set temp $temperature"  "how hot or cold it is"          2 
lappend output "set topdir $topdir"   "that's the base of the working directory tree"    0 

set format "# %2\$s\n%1\$s%3\$s" 
# or: set format "%1\$s\t;# %2\$s%3\$s" 
# or: set format "%1\$s\n# %2\$s%3\$s" 

foreach {cmd com nls} $output { 
    puts $fileID [format $format $cmd $com [string repeat \n $nls]] 
} 

この方法は、あなたがに異なるスタイルを適用することができ、出力データベースを取得します。

ドキュメント:foreachformatlappendputssetstring

2

は、単に空白行を追加する "" プットを使用しています。代わりに、テキストの後に改行を追加するために "\ n"を入れてください。コメントを書くことは、他の行を書くことに似ています。つまり、行はハッシュで始まります。


% puts line1; puts ""; puts line2 
line1 

line2 
% 

% puts #line1; puts ""; puts line2 
#line1 

line2 
% 
関連する問題