Gjest Slettet-aNZFa3 Skrevet 16. juni 2007 Skrevet 16. juni 2007 Hvordan lagrer jeg alle variablene i programmet og bokstavelig talt hele programmet til en .sav fil. Fra textbox til .txt veit jeg. Btw åssen laster jeg inn den .sav filen etterpå?
aadnk Skrevet 17. juni 2007 Skrevet 17. juni 2007 Du kan eksempelvis benytte serialization - å dumpe innholdet i et objekt til en fil (enten i XML eller binært format) og siden initialisere det direkte fra filen. La oss si du ønsker å lagre en liste med kunder av dette oppsettet: ' Følgende linje MÅ legges til for at serialisering skal kunne fungere<System.Serializable()> _ Public Class Customer ' Variabler som kan lagres Public Name As String Public Age As Integer Public Phone As String Public Fax As String Public Email As String Public ZipCode As Integer Public Address As String Public Country As String ' Felt og egenskaper som ikke skal serialiseres, må avmerkes således <System.NonSerialized()> _ Public Tag As Object Public Sub New() ' Dersom du bruker New(), må du alltid inkludere en TOM initialisering End Sub Public Sub New(ByVal Name As String) Me.Name = Name End Sub ' Osv. End Class Legg så til følgende kode i en egen fil: Klikk for å se/fjerne innholdet nedenfor Imports System.IOImports System.Runtime.Serialization.Formatters.Binary Imports System.Xml.Serialization Public Class Serialization(Of T) Public Shared Sub Save(ByVal Item As T, ByVal File As String, ByVal UseXML As Boolean) ' Delete the file if it already exists If IO.File.Exists(File) Then IO.File.Delete(File) End If ' Create the file and serialize the object Using oFile As New IO.FileStream(File, IO.FileMode.CreateNew) Save(Item, oFile, UseXML) End Using End Sub Public Shared Sub Save(ByVal Item As T, ByVal Output As Stream, ByVal UseXML As Boolean) Dim oBinary As New BinaryFormatter Dim oXML As New XmlSerializer(Item.GetType) ' Deserialize the object depending on the file type If UseXML Then oXML.Serialize(Output, Item) Else oBinary.Serialize(Output, Item) End If End Sub Public Shared Function Load(ByVal File As String, ByVal UseXML As Boolean) As T ' Open the file stream and deserialize the object depending on the file type Using oFile As New IO.FileStream(File, IO.FileMode.Open) Return Load(oFile, UseXML) End Using End Function Public Shared Function Load(ByVal Input As Stream, ByVal UseXML As Boolean) As T Dim oBinary As New BinaryFormatter Dim oXML As New XmlSerializer(GetType(T)) ' Do the requred operation If UseXML Then Return oXML.Deserialize(Input) Else Return oBinary.Deserialize(Input) End If End Function End Class Da vil du kunne lagre/åpne lister av kunder som følger: Dim Customers As New List(Of Customer), Result As List(Of Customer) ' Legg til kunder Customers.Add(New Customer("Ole Nordmann")) Customers.Add(New Customer("Kari Nordmann")) ' Lagre liste Serialization(Of List(Of Customer)).Save(Customers, "C:\Test.dat", False) ' Åpne liste Result = Serialization(Of List(Of Customer)).Load("C:\Test.dat", False)
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå