NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

文字列選択

解決済み
解決策を見る

初めまして。

計測機器からの応答として得られる文字列の、一部を選択し、

数値として返すプログラムを組みたいのですが、どのように組めばいいのかが分かりません。

 

$0,8.09E+02  ・・・文字列

8,09E+02 ・・・数値

 

よろしくお願いいたします。

0 件の賞賛
メッセージ1/5
4,076件の閲覧回数
解決策
トピック作成者masa1126が受理

masa1126 様

 

いろいろなやり方があります。

最初の3文字 "$0," を取り除いて、後ろの ”8.09E+02” を変換するとき。

 

"$0," の末尾のカンマ "," を「パターンで一致」で検索し、

カンマの後ろの部分を「小数/指数文字列を数値に変換」 で数値へ変換します。

文字列選択 1.png

 

最初の文字が必ず3文字と決まっているなら、

「小数/指数文字列を数値に変換」にオフセットを設定するだけでも可能です。

文字列選択 2.png

 

変換には「文字列からスキャン」も使えます。

一度に複数の変換処理ができるので慣れると便利です。

文字列選択 3.png

 

メッセージ2/5
4,068件の閲覧回数
解決策
トピック作成者masa1126が受理

お返事ありがとうございます。

 

ご教授いただいた方法で試したところ、

上手く数値のみを取り出すことができました。

 

「文字列からスキャン」を使用することで、以下のことも実現可能なのでしょうか。

 

$0,8.09E+02,0,7.66E+02,5,0.00

8,09E+02 7.66E+02 0.00

 

一つの文字列から複数の数値を取り出し、それぞれ個別で出力するには

どのような操作を行えば良いのでしょうか。

 

勉強不足で申し訳ありませんが、お教えいただけないでしょうか。

 

よろしくお願いいたします。

 

0 件の賞賛
メッセージ3/5
4,034件の閲覧回数
解決策
トピック作成者masa1126が受理

こんにちは。

 

文字列からスキャンの関数の枠をドラッグして出力の数を増やすことができます。

複数の出力値の間が同じ文字列(今回の場合、「0」とコンマ)でパッドされているのであれば、固定で問題ありませんが

下記画像の下部の様にコンマで出力をそれぞれわけることもできます。

 

test.png

 

色々試してみてください

メッセージ4/5
4,017件の閲覧回数

ご返事ありがとうございます。

 

いただいたアドバイスをもとにプログラムを作成したところ、

問題なく動作しました。

 

貴重なお時間、ありがとうございました。

0 件の賞賛
メッセージ5/5
4,011件の閲覧回数