2016-04-14 19 views
1

Bir dosyaya tcl olarak birden çok satır yazıyorum. Her ne kadar yazmayı başarabilsem de, az sayıda satırdan sonra boş satırlar çizmek ve her satır için yorum eklemek istedim.tcl'de bir dosyaya birden çok satır yazma, boş satır ve yorumlar ekleme

İşte kodumu gider.

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 

Lütfen her satır için boş satırlar ve yorum eklemeyi önerin. Tabii

+0

Bir Tcl dosyası yazacağız, ben mesela list 'yerine dize birleştirme 'kullanmanızı öneririz '$ fileId [list set_var tmpdir $ tmpdir_path' komutunu koyar. Bu, yolun içinde bir boşluk varsa boğulmayan geçerli bir Tcl komutu oluşturacaktır. –

cevap

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" 

, bunu şöyle yapabilirsiniz:

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]] 
} 

Bu şekilde, sen farklı stiller uygulayabilir bir çıkış veritabanı olsun.

Dokümantasyon: foreach, format, lappend, string

2

puts, set, Sadece bir boş satır eklemek için "" koyar kullanın. Alternatif olarak, bir metinden sonra yeni bir satır eklemek için "\ n" ifadesini kullanır. Yorum yazmak başka bir satır yazmak gibidir - sadece satırın bir karma ile başlaması.


% puts line1; puts ""; puts line2 
line1 

line2 
% 

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

line2 
% 
İlgili konular