目次

数値生成(Tcl/Tk)

 制御関係のプログラミングをする場合、I/Oポートの
 入出力を扱うために、ポートの並びを記述する必要が
 あります。次のような場合です。

NET "REGOUT<0>" LOC = "P11" ;
NET "REGOUT<1>" LOC = "P12" ;
NET "REGOUT<2>" LOC = "P13" ;
NET "REGOUT<3>" LOC = "P14" ;

 この例では、0から3と11から14が必要です。

 Copy & Pasteで対応できますが、数値の記述を
 1行に2カ所変更するのは、自分のような不精
 な人間には面倒で、ミス連発が目に見えてます。

 はじめに、0から3の変化をスクリプトで記述し
 それに11から14の変化を追加していけば、目的の
 数値変化のコードを入手できます。

 0から3の変化
  for文を利用して記述します。

for {set i 0} {$i < 4} {incr i} {
  puts $i
}

  ファイル名をtt.tclにして、Windowsの
  DOS窓で動かすと、次のようになります。



  I/Oリダイレクトを利用して、テキストファイル
  に落としておけば、次のような内容になります。

0
1
2
3

 11から14の変化
  for文の中に、0のときに11になるように
  加算処理を加えます。

for {set i 0} {$i < 4} {incr i} {
  set j [expr $i+11]
  puts "$i $j"
}

  I/Oリダイレクトで、テキストファイルに
  内容をいれると、以下となります。

0 11
1 12
2 13
3 14

 文字列追加
  最終目的は、文字列をつけたファイルなので
  出力処理の中に入れます。

for {set i 0} {$i < 4} {incr i} {
  set j [expr $i+11]
  puts "NET \"REGOUT<$i>\" LOC = \"P$j\" ;"
}

 文章にすると長いですが、実際には5分もあれば
 スクリプトが完成します。

 行数が少ない場合、エディタで直接入力した方が
 作業時間は少ないですが、行数が増えるに従って
 スクリプトを作成した方がミスなく早く記述でき
 ます。


目次

inserted by FC2 system