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 _* ;必要のない変数を削除