Was ist der beste Weg, zu speichern, ein array von Strukturen in VB.NET?
Habe ich 2 Strukturen
Public Structure One
Public ItemOne As String
Public ItemTwo As Integer
End Structure
Public Structure Two
Public ItemOne As String
Public ItemTwo As Integer
Public ItemThree As Integer
Public ItemFour As Integer
Public ItemFive As Integer
End Structure
Public TestOne(0) as One
Public TestTwo(19) as Two
Mit dem FileOpen, FilePut und FileClose Methode, bekomme ich eine Fehlermeldung: (Abgespeckte nur im Zusammenhang mit code als Beispiel)
Public Sub WriteOne()
FileOpen(1, "One.dat", OpenMode.Random, OpenAccess.Write)
FilePut(1, TestOne)
FileClose(1)
End Sub
Public Sub ReadOne()
FileOpen(1, "One.dat", OpenMode.Random, OpenAccess.Read)
FileGet(1, TestOne)
FileClose(1)
End Sub
Public Sub WriteTwo()
FileOpen(1, "Two.dat", OpenMode.Random, OpenAccess.Write)
FilePut(1, TestTwo)
FileClose(1)
End Sub
Public Sub ReadTwo()
FileOpen(1, "Two.dat", OpenMode.Random, OpenAccess.Read)
FileGet(1, TestTwo)
FileClose(1)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ReadOne()
ReadTwo()
Label1.Text = Cstr(TestOne(0).ItemTwo)
Label2.Text = Cstr(TestTwo(4).ItemFour)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TestOne(0).ItemTwo = 9
TestTwo(4).ItemFour = 78
WriteOne()
WriteTwo()
End Sub
Ergebnisse In einer nicht behandelten Ausnahme. Falsche Datensatzlänge.
und dann Wenn ich es schließen und erneut öffnen, erhalte ich 'Unable to read beyond end of stream' - Fehler.
Also, was ist der beste Weg, um zu speichern, ein array von Strukturen? Binäre Reader/Writer? und warum funktioniert dieser Weg nicht funktionieren (Auch wenn seine abgeleitet aus VB6)
- Die Ergebnisse in der Ausnahme?
- Ah sorry, Zeile 34 In Modul1 [FilePut(1, TestTwo)], Zeile 14 in Form1 [WriteOne()] arrays und Lesen/schreiben subs sind in einem anderen Modul. Ereignisse werden in form1.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Serialisierung BinaryFormatter und Speichere es in einer Datei-stream mit Serialisieren, dann Lesen Sie es mit Deserialisieren. Müssen Sie
<Serializable()>
auf Ihre Struktur-Deklarationen....
Ich denke, einen besseren Weg zu speichern ein array von Strukturen ist, um die Serialisierung zu verwenden. Sie können
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
,System.Xml.Serialization.XmlSerializer
oderSystem.Runtime.Serialization.Formatters.Soap.SoapFormatter
zum serialisieren des Arrays.