Collection oder Klasse auf Festplatte speichern

14/11/2011 - 12:54 von Hermie | Report spam
Hallo!

Ich habe eine Klasse (Sparse Matrix), die ich sehr langsam mit Werten
fülle, die ausn einer DB kommen.
Ich würde das Ding, wenn es gefüllt ist, gerne auf die Festplatte
speichern, damit ich es spàter schnell wieder laden kann.

Als PropertyBag kann ich es aber nicht speichern, das scheint nicht so
gedacht zu sein.

Hat jemand eine Idee, wie ich das Ding auf die Platte speichern und
wieder laden kann?
Also ich möchte es nicht immer zur Laufzeit mit Werten füllen, sondern
in einem Rutsch einlesen.

Danke für die Hilfe!
Hermann

Option Explicit

Private m_RowCollection As New Collection

'Returns the cell value for the given row and column
Public Property Get Value(nRow As Long, nCol As Long) As Double
Dim ColCollection As Collection
Dim val As Double

On Error Resume Next
Set ColCollection = m_RowCollection(CStr(nRow))
'Return empty value if row doesn't exist
If err Then Exit Property
val = ColCollection(CStr(nCol))
'Return empty value is column doesn't exist
If err Then Exit Property
'Else return cell value
Value = val
End Property

'Sets the cell value for the given row and column
Public Property Let Value(nRow As Long, nCol As Long, Value As Double)
Dim ColCollection As Collection

On Error Resume Next
Set ColCollection = m_RowCollection(CStr(nRow))
'Add row if it doesn't exist
If err Then
Set ColCollection = New Collection
m_RowCollection.Add ColCollection, CStr(nRow)
End If
'Remove cell if it already exists (errors ignored)
ColCollection.Remove CStr(nCol)
'Add new value
ColCollection.Add Value, CStr(nCol)
End Property
 

Lesen sie die antworten

#1 G.Wietzorek
14/11/2011 - 19:21 | Warnen spam
Am 14.11.2011 12:54, schrieb Hermie:

Ich habe eine Klasse (Sparse Matrix), die ich sehr langsam mit Werten
fülle, die ausn einer DB kommen.
Ich würde das Ding, wenn es gefüllt ist, gerne auf die Festplatte
speichern, damit ich es spàter schnell wieder laden kann.

Als PropertyBag kann ich es aber nicht speichern, das scheint nicht so
gedacht zu sein.

Hat jemand eine Idee, wie ich das Ding auf die Platte speichern und
wieder laden kann?
Also ich möchte es nicht immer zur Laufzeit mit Werten füllen, sondern
in einem Rutsch einlesen.



Wenn Du eine Abhàngigkeit nicht scheust, nimm die RC4 und verwende
cCollection statt Collection. Macht vieles einfacher. Es gibt ein Exists
Property, was ich hübscher finde, statt etwas auf Fehler laufen zu
lassen und es gibt insbesondere das Content Property, das den Inhalt der
Collection serialisiert ausgibt und auch wieder als Inhalt der
Collection zugewiesen werden kann und einfach Binàr auf die Platte
geschrieben und von dieser gelesen werden kann. Und der Zugriff auf
Elemente der cCollection ist auch noch etwas schneller.

Gert

"Probleme kann man niemals mit derselben Denkweise lösen, durch die sie
entstanden sind."
Albert Einstein

Ähnliche fragen