FAQ

FAMOS

シーケンス / 関数top

Tips

ID.s003

Q. 変数名に連続した番号を付けているのですが、ループを使って処理できますか?

A.


例えば、以下のようなチャンネル名(データ)が存在するとします。

    Ch1
    Ch2
    Ch3
     :

    Ch15
    Ch16

例えば、これらのチャンネルのデータを切り出す場合、それぞれ処理させると以下のようにプログラムが凡長になってしまいます。

    Out01 = Cut( Ch1,  0, 10 )
    Out02 = Cut( Ch2,  0, 10 )
    Out03 = Cut( Ch3,  0, 10 )
     :

    Out15 = Cut( Ch15, 0, 10 )
    Out16 = Cut( Ch16, 0, 10 )

このとき、以下のように文字列関数を使ってチャンネル名を作成します。

Example

_i = 1

While _i <= 16   ;文字列としてチャンネル名を作成します
  ;----------------------
  _temp   = TForm( _i, "F00")      ; 数値を文字列に変換
  _ChName = TAdd( "Ch", _temp)     ; 文字列を連結(Ch1)

  ;データ処理(例:波形の切り出し)
  ;----------------------

  _temp1 = Cut( <_ChName>, 0, 10)  ;作成した文字列に対応する変数を処理
                           ;<>で囲むと文字列に対応した変数を参照できます。

  ;出力データの作成
  ;----------------------
  _Output = TAdd( "Out", _temp) 
  <_Output> = _temp1 

  _i=_i+1 
End 

Del _* 		     	        ;必要のない変数を削除

製品詳細はこちら

<< Tipsに関するFAQ一覧へ戻る