DIAdem上でVBScriptを使用してDataPluginを作成し、ファイルを読み込む

更新しました Jan 25, 2021

環境

ソフトウェア

  • DIAdem

独自のフォーマットのデータをDIAdemにインポートするには、それぞれのデータフォーマットに対応し、必要な情報を読み取る為のプログラム(DataPlugin)が必要となります。ここでは簡単なDataPluginを作成し、データの読み取りとDataPluginのエクスポートについて確認します。

DataPlugin_Examples.zip をダウンロードします。このフォルダにはDataPluginのスクリプトとして使用する
DataPluginExample1.vbsとDataPluginを使用して読み込むデータDataPluginExample1.ex1が含まれております。

DIAdemを起動し、設定>拡張>データプラグインを選択し、「データプラグインの設定」を開きます。新規のDataPluginを作成する際は「VBSデータプラグインを追加」を選択します。



「新規データプラグイン」設定画面ではDataPluginの名前、読み込むデータの拡張子、また、拡張設定を開き、このDataPluginをインストール可能とする互換性のある最小のUSIバージョンを選択します。DataPluginはUSIで実行される為、基本的にはDataPluginを作成した環境と同じバージョンのUSIバージョンが要求されますが、この設定により、開発に用いたUSIバージョンよりも古い環境で使用可能となります。OKをクリックし、DataPluginの作成を完了します。



作成されたDataPluginのスクリプトを編集するにはDataPlugin名を右クリックし、「スクリプトの編集」を選択します。



DataPluginを作成直後のスクリプトは下記の様にデフォルトの内容となっており、赤枠の部分を編集し、読み込む対象のデータの読み取り方を記述します。ここではDataPluginExample1.vbsの内容を使用します。



上記のデフォルトのスクリプトを下記の物と置き換え、保存します。
 
Option Explicit

Sub ReadStore(File)
  'Provide the file object with information about the file format
  File.Formatter.LineFeeds = vbNewLine
  File.Formatter.IgnoreEmptyLines = true
  File.Formatter.TrimCharacters = " "
  File.Formatter.Delimiters = ";"
  File.Formatter.ThousandSeparator = "."
  
  'Read the name of the source out of the first line of the file.
  Dim TitleValue : TitleValue = File.GetNextStringValue(eString)
  Call Root.Properties.Add("Name", TitleValue)
  
  'Read the description of the implicit channel out of the second line of the file.
  File.SkipLine() 'Advance to the next line.
  Dim ChannelName : ChannelName = File.GetNextStringValue(eString)
  Dim StartValue  : StartValue  = File.GetNextStringValue(eI32)
  Dim Increment   : Increment   = File.GetNextStringValue(eI32)
  Dim ChannelSize : ChannelSize = File.GetNextStringValue(eI32)
  
  'Create the implicit channel.
  Dim ChannelGroup : Set ChannelGroup = Root.ChannelGroups.Add("MyChnGroup")
  Call ChannelGroup.Channels.AddImplicitChannel(ChannelName, StartValue, Increment, ChannelSize, eI32)
  
  'Read the root's properties out of the file
  File.Formatter.Delimiters = ":" 'Properties and their values are seperated by a ":"
  
  Dim PropertyName, PropertyValue
  While (File.Position <> File.Size)
    File.SkipLine() 'Advance to the next line.
    PropertyName  = File.GetNextStringValue(eString)
    PropertyValue = File.GetNextStringValue(eString)
    
    'Create the property on the root of the plugin.
    Call Root.Properties.Add(PropertyName, PropertyValue)
  Wend
End Sub 

上記の方法で作成したDataPluginを使用してデータの読み込みを行います。DIAdemのNAVIGATORにて、DataPluginExample1.ex1を右クリックし、「ローダーで開く」を選択します。



上記の手順でデータをDIAdemに読み込ませると下記の様なデータが読み込まれます。メモ帳でDataPluginExample1.ex1を開き、内容を比較すると、XAxisという名前で1,000,000から2,000刻みに301点分のデータが存在する事が分かります。またテキストファイルの1.000.000; 2.000; 301という記述の様にカンマとピリオドが入れ替わっている表記(ドイツの方式)であってもDataPluginのFile.Formatter.ThousandSeparator = "."のスクリプトによって正常に読み込まれている事が確認できます。


 

次のステップ

作成したDataPluginをエクスポートし、別の環境にインストールするには下記の手順を行います。設定>拡張>データプラグインを選択し、「データプラグインの設定」を開きます。別の環境にインストールするDataPluginを選択し、「データプラグインをエクスポート」を選択します。*.uriファイルを作成し、このDataPluginをインストールする環境へ移動します。

​​​​​

DataPluginのインストールは*.uriファイルをダブルクリックする事で下記の様に自動的に実行されます。この状態でDIAdemを開き、先の手順と同様にデータを読み込むことができます。