DIAdem Scriptで配列要素の検索

更新しました Apr 20, 2023

環境

ソフトウェア

  • DIAdem

DIAdemに読み込んだデータから特定の条件を満たす値を検索する方法について確認します。ここではVBScriptを使用して、Data Portal上にテスト用データを作成し、そのデータの中から特定の条件を満たすデータを検索する方法を確認します。

1. テスト用の1D配列データの作成
下記のスクリプトを実行し、1から1000000までの数字が並んだ配列を作成します。大きな配列を作成するのでやや時間がかかります。
 
Call Data.Root.Clear()
Call Data.Root.ChannelGroups.Add("MyChannelGroup")

Dim oMyGrp, oMyChn, i
Set oMyGrp = Data.Root.ChannelGroups(1)
Set oMyChn = oMyGrp.Channels.Add("Xaxis",DataTypeFloat64)
For i = 1 to 1000000
  oMyChn(i) = i
Next

2. ChnFindの関数の挙動を確認します。
 
Dim sFormula, aSymbol(2), aValues(2), Result
sFormula = "A = B"
aSymbol(1) = "A"
aSymbol(2) = "B"
Set aValues(1) = Data.GetChannel("[1]/[1]")
aValues(2) = 11
Result = ChnFind(sFormula,,aSymbol, aValues)
Call MsgBox(Result)

こちらのスクリプトを実行すると即座にメッセージボックスが立ち上がり、11というメッセージが表示されます。次にDIAdem VIEWにおいてData PortalのXaxisのデータの11番目の要素を手動で11以外の数字に変更し、最後の方の要素を11にして再度上記のスクリプトを実行すると、検索に時間はかかるものの11に変更した部分のインデックスが表示されます。11が複数個存在する場合、最初の11が検出されるまでChnFindは要素を探す挙動も確認できます。