[an error occurred while processing this directive] [an error occurred while processing this directive]


プログラミング
逆引き
クライアントとの通信
VisMでの通信
Factoryでの通信
WebServiceでの通信
CSP (Cache' Server Pages)
Cache'SQL
設定・性能


【広告】









VisM.PLISTを使用する

 How to use VisM .PLIST


VisMを使ってCache'と通信するとき、値を渡す方法として .Value .P0〜.P9 そして PList があります。それぞれVisualBasicでセットした値をCache'で参照でき、またその逆にCache'でセットした値をVBで参照することができます。

ここでは、その中でも配列を渡すことに特化した PLIST について説明します。



PLISTとPDELIM

VisualBasic上でPLISTは、VisMコンポーネントのプロパティとして動作します。PLIST プロパティはString型で、1つの値を持ちます。

Cache'上でPLISTは通常の変数ですが、VBと正常に通信するためにはDT(DataTree)構造の配列である必要があります。DT構造とは、配列の枝に連番をもち、配列のトップにその個数を持つ構造です。


DT構造の例

PLISTとPDELIMはセットで使用します。PDELIMはデフォルトで改行(asciiコード 13+10)がセットされています。このPDELIMの値は、Cache'側でセットされたPLIST配列をVB上で表現する際に、各項目を結合する文字として使用します。

具体的なイメージとしては次のようになります。

Cache'VB
S PLIST=3
S PLIST(1)="さんま"
S PLIST(2)="あじ"
S PLIST(3)="いわし"
  VisM.PDelim="^"
VisM.PList="さんま^あじ^いわし"


サンプル

PLISTを使った接続の例です

Cache'VB
test ;
   Set PLIST=3
   Set PLIST(1)="とうふ"
   Set PLIST(2)="はくさい"
   Set PLIST(3)="しいたけ"
   Quit
Sub GetPlist()
   VisM1.PDELIM = "^"
   VisM1.Execute "Do 左のルーチン"
   MsgBox (VisM1.PLIST) '確認用
   PART = Split(VisM1.PLIST, "^")
   For i = 0 To UBound(PART)
      List1.AddItem PART(i)
   Next
End Sub

MsgBoxで表示されるように、VB側でPLISTにセットされる値は単独の文字列になります。これをもとの配列構造に戻すのに、VBの文字列操作関数 Split() が大変便利です。

また、その逆を行う関数として Join() というものもあります。

これらの関数の説明はMSDNなどを参照してください。



[an error occurred while processing this directive] [an error occurred while processing this directive]
2012/11/19Update