[ BinaryRuler @ 31.03.2007. 19:35 ] @
Kako mogu neku strukturu u C#-u da prebacim u neku datoteku npr "test.dat" u trenutnom direktorijumu, a da pri tome ne moze da se cita spolja, a iz programa da mogu je procitam.
Npr. ovakvu strukturu:
Code:

public struct test
{
      public int rBr;
      public double rez;
}
[ Pharos @ 31.03.2007. 22:24 ] @
Serilizacija?
[ BinaryRuler @ 31.03.2007. 22:29 ] @
Valjda, znaci treba mi upisivanje sloga u datoteku kao sto se to radi u c++-u, ne u xml file.
[ BinaryRuler @ 31.03.2007. 22:32 ] @
Konkretno ja cu imati niz tih slogova koji cu slog po slog petljom da upisem u datoteku.
[ dusans @ 01.04.2007. 18:25 ] @
To sto hoces, takav nacin kao sto se ranije radilo u c-u, pascal-u, ... ne moze u .net-u na standardni nacin zbog toga sto su podaci objekata skriveni, cak i ne postoje te funkcije (printf, write) koje rade memory dump sadrzaja strukture kao sto se to radi u c-u ili paskalu.
Znaci, ako hoces da sacuvas podatke nekog objekta ili strukture u datoteku, koristi binarnu serijalizaciju, pogledaj u help-u BinaryFormatter klasu, tamo imas primer kako se to radi.
I napomena, datoteka koju budes dobio je i dalje citljiva isto kao sto bi bila citljiva i onu koju bi dobio u c-u (binarna jeste ali nije kriptovana).

Pozdrav!
[ draksa @ 03.04.2007. 01:03 ] @
Ovo je metod koji koristi binarnu serijalizaciju. Na ovaj nacin ostali nevide sta je zapisano u fajlu jer im nije poznata struktura fajla(koji objekat se unutra nalazi). Kao sto je neko vec napisao podaci nisu sifrovani, sto znaci da ako neko zna da se unutra nalazi objekat tipa test onda on moze da procita podatke iz fajla.

public struct test
{
public int rBr;
public double rez;
}
public static void Main(String[] args)
{
//upis u fajl
test t1;
t1.rBr=20;
t1.rez=34.333;

FileStream s=File.Create("test.dat"); //kreira se datoteka test.dat
BinaryFormatter b=new BinaryFormatter();//sluzi da formatira objekat na odgovarajuci nacin

b.Serialize(s,t1); //upis(serijalizacija)
s.Close(); //zatvara se fajl

//citanje iz fajla
FileStream s1=File.OpenRead("test.dat");
BinaryFormatter b1=new BinaryFormatter();

test izDatoteke;
izDatoteke=(test)b1.Deserialize(s1);
s1.Close();
}

neophodno je ukljuciti i:

System.IO;
System.Runtime.Serialization;
System.Runtime.Serialization.Formatters.Binary;
[ BinaryRuler @ 04.04.2007. 02:00 ] @
Hvala na pomoci.
Pozdrav svima.