Avatar billede aniels21 Nybegynder
19. juli 2004 - 14:52 Der er 9 kommentarer og
1 løsning

Hvordan gemmes/laves objekter til/fra en fil?

Jeg vil gerne have et eksempel på hvordan man gemmer et/flere objekt(er) i en fil, som enten er oprettet eller oprettes i samme arbejdsgang.
Og ligeledes hvordan man indlæser og opretter objekterne igen fra filen.

Bedst vil det være hvis det kan bruges direkte i C#.NET compact framework.

Tak
Avatar billede simonvalter Praktikant
19. juli 2004 - 15:07 #1
nu kender jeg ikke noget til net cf men jeg har da fundet nogen forslag som du måske kan bruge.
http://dotnetjunkies.com/Newsgroups/microsoft.public.dotnet.framework.compactframework/2004/3/31/101068.aspx
Avatar billede aniels21 Nybegynder
19. juli 2004 - 15:51 #2
Tak.
Spørgsmålet der bliver stillet er godt nok, men ikke svaret :-) .
Avatar billede arne_v Ekspert
19. juli 2004 - 19:11 #3
I ikke compact ville man formentlig gøre noget a la dette:

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable]
public class C
{
    private int iv;
    private double xv;
    private string sv;
    public int Iv
    {
        get
        {
            return iv;
        }
        set
        {
            iv = value;
        }
    }
    public double Xv
    {
        get
        {
            return xv;
        }
        set
        {
            xv = value;
        }
    }
    public string Sv
    {
        get
        {
            return sv;
        }
        set
        {
            sv = value;
        }
    }
    public override string ToString()
    {
        return ("[" + iv + "," + xv + "," + sv + "]");
    }
}

class MainClass
{
    public static void Main(string[] args)
    {
        C c1 = new C();
        c1.Iv = 123;
        c1.Xv = 123.456;
        c1.Sv = "ABC";
        C c2 = new C();
        c2.Iv = 321;
        c2.Xv = 654.321;
        c2.Sv = "CBA";
        BinaryFormatter bf = new BinaryFormatter();
        FileStream outf = File.Create("C:\\c.ser");
        bf.Serialize(outf, c1);
        bf.Serialize(outf, c2);
        outf.Close();
        FileStream inf = File.OpenRead("C:\\c.ser");
        C c3 = (C)bf.Deserialize(inf);
        C c4 = (C)bf.Deserialize(inf);
        inf.Close();
        Console.WriteLine(c3);
        Console.WriteLine(c4);
    }
}
Avatar billede arne_v Ekspert
19. juli 2004 - 19:20 #4
Avatar billede aniels21 Nybegynder
20. juli 2004 - 09:08 #5
Det ser vældig spændede ud arne, men efter at have kigget lidt på den der Compact Formatter føler jeg mig en lille smule som en sinke. Jeg fatter ikke en bjælde af hvad det er, og hvordan man skulle bruge det :-D .

Lidt forklaring om hvad det er og hvordan det bruges kunne være rart.
Avatar billede arne_v Ekspert
20. juli 2004 - 20:16 #6
source\test\CompactFormatterTest.cs

indeholder eksmepler på hvordan det kaldes !
Avatar billede arne_v Ekspert
20. juli 2004 - 20:18 #7
Uddrag:

            FileStream FS=new FileStream("Test.bin",FileMode.Create);
            CompactFormatter CS=new CompactFormatter();
            EnumType en=EnumType.SECOND;
            try
            {
                CS.Serialize(FS,en);
            }
            finally
            {
                              FS.Close();
                        }
            FileStream FS2=new FileStream("Test.bin",FileMode.Open);
            try
            {
                EnumType en2=(EnumType)CS.Deserialize(FS2);
                FS2.Close();
                NUnit.Framework.Assertion.AssertEquals(en,en2);
            }
            finally
            {
                FS2.Close();
            }

Det her er så en enumeration men det er helt det samme med klasser og structs.
Avatar billede arne_v Ekspert
20. juli 2004 - 20:18 #8
OK ?
Avatar billede arne_v Ekspert
31. juli 2004 - 23:30 #9
aniels>

Tid at få afsluttet spørgsmålet ?
Avatar billede aniels21 Nybegynder
09. september 2004 - 11:15 #10
Yep, sorry. FIk det til at virke og blev kåd og lavede sagerne færdige. Tak for hjælpen. :-D
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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