Avatar billede syncroniq Nybegynder
12. februar 2007 - 08:55 Der er 7 kommentarer

Gemme objenter i binær fil

Hey,

Jeg har lavet et eksempel der gemmer et array i en binær fil. Det virker fint. Men nu har jeg prøvet at lave min egen klasse, og vil gemme dem i en binær fil også, men det må jeg ikke.

Mit Array eksempel er således:
    Open "C:\binary.BIN" For Binary As #1
        Put #1, 1, bytes
    Close #1

Jeg har lavet en klasse Node, der ser sådan her ud:
    Dim leaf As String
    Dim leftNode As New node
    Dim rightNode As New node
   
    Public Sub constructor()
        leaf = 0
        Set leftNode = New node
        Set rightNode = New node
    End Sub
   
    Public Sub setLeftNode(newNode As node)
        Set leftNode = newNode
    End Sub
   
    Public Sub setRightNode(newNode As node)
        Set rightNode = newNode
    End Sub
   
    Public Sub setLeaf(newLeaf As String)
        Set leaf = newLeaf
    End Sub
   
    Public Function getLeftNode() As node
        Set getLeftNode = leftNode
    End Function
   
    Public Function getRightNode() As node
        Set getRightNode = rightNode
    End Function
   
    Public Function getLeaf() As String
        setgetLeaf = leaf
    End Function

Jeg sætter nogle værdier i min Node (gerne andre noder og nogle gange en leaf værdi.

så vil jeg gerne gemme på samme måde som med mit array.

Så får jeg følgende fejl:

"Can't Get or Put an object reference variable or a variable of user-defined type containing an object reference.

Hvordan får jeg den til at gemme? Jeg er stadig forholdsvis ny i VB, og kan se det har noget at gøre med at det er bygget op på referencer. Men jeg ved ikke hvordan jeg laver om på det, så det virker.
Avatar billede syncroniq Nybegynder
12. februar 2007 - 10:00 #1
Hey,

Koden i min "mail" ser sådan her ud :

    node = New node
    node.setLeaf ("200")

    Open "C:\binary.BIN" For Binary As #1
        Put #1, 1, node
    Close #1
Avatar billede kalp Novice
12. februar 2007 - 10:48 #2
foran dit klasse navn skal der står

<Serializable()> Public Class DinKlasse
Avatar billede syncroniq Nybegynder
12. februar 2007 - 10:52 #3
Hey,

Er det ikke kun i .NET ?

Bruger VB 6.0, ikke .NET
Avatar billede kalp Novice
12. februar 2007 - 11:04 #4
Jeg går ud fra du stadig skal angive at klassen er serializable.. skal man i alle de programmeringssprog jeg har kigget på.
Avatar billede kalp Novice
16. februar 2007 - 17:52 #5
havde jeg ret?
Avatar billede arne_v Ekspert
16. februar 2007 - 18:06 #6
hvilke sprog som ikke er VM baserede bruger den teknik ?
Avatar billede kalp Novice
16. februar 2007 - 18:10 #7
ved ikke om det er mig du snakker til,men som jeg helt præcist har skrevet 11:04:21
så snakker jeg udelukkende om de programmeringssprog jeg har kigget på.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester