2016-09-01 2 views
-1

私は、ファイルの各行、たとえばabc.txtを読み込むtclスクリプトを生成したいと考えています。 abc.txtの各行は、コメントされたものを除いて選択する必要のあるファイルのセットの特定の場所です。たとえばabc.txtについては は、だから私はabc.txtの各行を読んで、それは言及していた場所からファイルを選択し、「//tclスクリプトを使って一連のファイルを収集する

で始まる一回を除いて、別のファイルに保存する必要がある

 
./pvr.vhd 
./pvr1.vhd 
// ./pvr2.vhd 

を持っています

ヒントやスクリプトは深く感謝します。

答えて

1

これを行う通常の方法は、コメント行をスキップする各行を処理するループの先頭にフィルタを配置することです。 string matchを使用して、回線をフィルタリングするかどうかを実際に検出できます。

set f [open "abc.txt"] 
set lines [split [read $f] "\n"] 
close $f 

foreach line $lines { 
    if {[string match "//*" $line]} { 
     continue 
    } 
    # ... do your existing processing here ... 
} 

これは、ストリーミングループ(while {[gets $f line] >= 0} {…})とともに使用する場合も同様です。

関連する問題