Collectionオブジェクトをファイル保存・読み込みするには?
はじめてお世話になります。
Collectionオブジェクトをファイル保存・読み込みする方法を教えて下さい。
フォームにテキストボックスと、リッチテキストボックスがあります。
’Person.clsで以下の用に設定し
Public Name As String
Public Memo As String
Public Sub SetData(a As String, b As String)
Name = a
Memo = b
End Sub
’フォームのコードは以下の用になっています。
Dim Girl As New Collection
'コレクションに追加
Private Sub Command1_Click()
Dim g As New Person
g.SetData Text1.Text, RichTextBox1.Text
'Text1.Textをキーに指定し、コレクションに追加
Girl.Add g, Text1.Text
Text1.Text = ""
RichTextBox1.Text = ""
End Sub
'****データの検索****
'Girlコレクションのメンバを2つ以上定義後
Private Sub Command3_Click()
Dim My_Serch As Object
'指定したキーでGirlコレクション内のメンバを検索
Set My_Serch = Girl.Item(Text1.Text)
RichTextBox1.Text = My_Serch.Memo
End Sub
この場合、Collectionオブジェクトのファイル保存・読み込みはどのようにしたらよろしいでしょうか。
なにとぞ、よろしくお願いします。
Collectionオブジェクト自体は、永続化可能なクラスではないので、
それ自体を、そのままファイルに吐き出すような事はできません。
しかも、値情報の列挙はできても、キー情報の列挙機能が無いため、
キー情報の管理を、Collectionとは別に行う必要があると思います。
Collectionの替わりに、Dictionaryオブジェクトを使ってみては如何でしょうか?
こちらであれば、キー情報の列挙もできますので、それらをファイルへ
保存する事も可能でしょう。(その代わり、Collectionとは異なり、
「キーが無い情報」を保持できないという制限が付きますが)
もしくは始めから、永続化可能なオブジェクトを利用するという方法もあります。
例えば、ADOのRecordsetオブジェクト、VB6のPropertyBagオブジェクト、
VB6のパーシスタブルクラス、MSXMLのXMLDocumentオブジェクトなどですね。
ツイート | ![]() |