Kirjautuminen

Haku

Tehtävät

Koodit: VB.NET: Objektin talletus levylle

Kirjoittaja: tnb

Kirjoitettu: 27.09.2004 – 27.09.2004

Tagit: koodi näytille, vinkki

Olio voidaan tallentaa levylle sarjamuodossa ja lukea se sieltä Formatters.Binary.BinaryFormatter luokan avulla. Oheinen esimerkki näyttää how-to.

Imports System.IO
Imports System.Runtime.Serialization

Public Class Form1
    Inherits System.Windows.Forms.Form
' tästä poistettu autom luotu koodi

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Luodaan objekti, joka halutaan tallentaa, dataksi arvo 1234
        Dim omaOlio As New OmaLuokka(1234)
        'Tehdään objekti, johon luetaan levyltä
        Dim YleinenOlio As Object
        'Tiedostonimi mihin talletetaan
        Dim strFilename As String = "C:\koe.dat"
        'Tallennuskäsky levylle
        TalletaLevylle(omaOlio, strFilename)
        'Ylikirjoitetaan sisäinen data, jotta levyltäluku näkyisi varmasti
        omaOlio.SisäinenData = 11
        'Luku levyltä
        LueLevyltä(YleinenOlio, strFilename)
        'Muutetaan levyltä luetun yleisen objektin tyyppi halutuksi
        omaOlio = CType(YleinenOlio, OmaLuokka)
        'Näytetään, että sisäinen data on tullut levyltä
        TextBox1.Text = omaOlio.SisäinenData.ToString '1234
    End Sub
    Public Sub TalletaLevylle(ByVal omaObjekti As Object, ByVal sfile As String)
        'objektin talletus levylle
        Dim omaFormatter As New Formatters.Binary.BinaryFormatter
        Dim fs As New FileStream(sfile, FileMode.Create)
        omaFormatter.Serialize(fs, omaObjekti)
        fs.Close()
    End Sub
    Public Sub LueLevyltä(ByRef omaObjekti As Object, ByVal sFile As String)
        'Objektin luku levyltä
        Dim omaFormatter As New Formatters.Binary.BinaryFormatter
        Dim fs As New FileStream(sFile, FileMode.Open)
        fs.Position = 0
        omaObjekti = omaFormatter.Deserialize(fs)
        fs.Close()
    End Sub
    ' Luokka , jota vastaava objekti halutaan tallentaa levylle, on oltava Serializable
    <Serializable()> _
 Public Class OmaLuokka
        Public SisäinenData As Integer
        Public Sub New(ByVal data As Integer)
            SisäinenData = data
        End Sub
    End Class
End Class

Kommentit

ErroR++ [09.09.2011 12:39:25]

#

Hieno!

Kirjoita kommentti

Muista lukea kirjoitusohjeet.
Tietoa sivustosta