Collectionオブジェクトをファイル保存・読み込みするには?


Mori  2003-09-20 20:47:18  No: 79510

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オブジェクトのファイル保存・読み込みはどのようにしたらよろしいでしょうか。
なにとぞ、よろしくお願いします。


魔界の仮面弁士  2003-09-21 00:03:27  No: 79511

Collectionオブジェクト自体は、永続化可能なクラスではないので、
それ自体を、そのままファイルに吐き出すような事はできません。
しかも、値情報の列挙はできても、キー情報の列挙機能が無いため、
キー情報の管理を、Collectionとは別に行う必要があると思います。

Collectionの替わりに、Dictionaryオブジェクトを使ってみては如何でしょうか?
こちらであれば、キー情報の列挙もできますので、それらをファイルへ
保存する事も可能でしょう。(その代わり、Collectionとは異なり、
「キーが無い情報」を保持できないという制限が付きますが)

もしくは始めから、永続化可能なオブジェクトを利用するという方法もあります。
例えば、ADOのRecordsetオブジェクト、VB6のPropertyBagオブジェクト、
VB6のパーシスタブルクラス、MSXMLのXMLDocumentオブジェクトなどですね。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加