開いてしまった( ̄ω ̄;。
DLLの話はちょっとおいておいて、なでしこのグループの話。
なでしこのグループを作成して、それをいったんファイルに保存
しておき、今度ファイルからよんでまたグループに値を代入する
と言うお話。なでしこは中間コードを生成するわけではないので
ホントにシリアライズは出来ないんだけど、まあイベントとか
関数とか含まないグループならファイルに保存するぐらいなら
可能かな。
ってことでまずはグループを作ってみます。
------ここから------
■GRPプロジェクト
・{文字列}GRP名{=「GRPプロジェクト」}
・{整数}ノード{=0}
・{文字列}名前
・{文字列}開始日
・{文字列}終了日
・{整数}次ノード{=1}
実はちょっと仕掛けが必要で、グループ要素の先頭に
文字列で「GRPプロジェクト」と、グループ名(GRP名)を
入れておきます。あとは文字列とか整数とかで値を列挙。
#あるプログラム用なので、要素名とかはあまり気に
しないでください(^^;。
これをファイルに保存しておきたい分けですが、折角
だからXML風に保存します。
------ここから------
<GRPプロジェクト>
<コード>0</コード>
<名前>IIU向け新PFの開発</名前>
<開始日>2013/10/04</開始日>
<終了日></終了日>
<関係者コード>100</関係者コード>
<管理項目コード>200</管理項目コード>
<フェーズコード>300</フェーズコード>
</GRPプロジェクト>
グループ名が<GRPプロジェクト>~</GRPプロジェクト>の
タグになって、あとは要素がそれぞれのタグとなります。
これを実現するのに、下記のコードを書きました。
------ここから------
●XML化(GRPを)
GRP名=GRPのグループ判定
もしGRP名=空ならば
#何もしない
違えば
メンバーズはGRPのメンバ詳細列挙
メンバ数はメンバーズの配列要素数
メンバ数回
メンバーズ\(回数-1)の「(」から「)」まで範囲切り取る
タグペアはメンバーズ\(回数-1)を「 = 」で区切る
もし(回数-1)=0ならば
グループ終了タグ=「</」&「{タグペア\1}」&「>」
XML結果=「<」&「{タグペア\1}」&「>」&改行
違えば
アイテム開始タグ=「 」&「<」&「{タグペア\0}」&「>」
アイテム終了タグ=「</」&「{タグペア\0}」&「>」
XML結果=XML結果&アイテム開始タグ&「{タグペア\1}」&アイテム終了タグ&改行
XML結果=XML結果&グループ終了タグ&改行&改行
XML結果で戻る
「グループ判定」「メンバ詳細列挙」というのはなでしこの命令です。
一番最初なら大くくりのタグを作って、2番目以降は1行に開始
タグと終了タグを入れてます。
ファイルから呼んでグループに戻すのは…省略(^^;。比較的簡単に
出来ますよ。最初のタグ読んだときにグループを生成し、それ以降は
生成したグループに値(<xxxx>~</xxxx>の間にある文字列)を入れる
だけ。
なでしこの変数はファジーに出来ていて、
{整数}X
と宣言したところにたとえば文字列で「1」と入れてあげても、以降
ちゃんと整数として扱ってくれます(2byte系の文字列「1」ではダメ
でした。半角数字なら 整数として代入してくれるようです)。なので
ファイルに文字列として書き出していても、次にそれを読み込んで
変数に代入すれば整数として扱ってくれるんですね~♪