Forum » Programiranje » C# serilizacija String
C# serilizacija String
matto87 ::
Naslednja metoda ne serializira Stringa. Isto metodo sem uporabil za objekte, ki sem jih sam napisal in normalno deluje. A je možno da String v c# ni serializable?
public void serilizirajM()
{
System.IO.Stream str = System.IO.File.OpenWrite("datoteka.dat");
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter =
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
formatter.Serialize(str, mojString);
str.Close();
}
Morda ve kdo kako bi enostavno serializiral nek String? Hvala.
public void serilizirajM()
{
System.IO.Stream str = System.IO.File.OpenWrite("datoteka.dat");
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter =
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
formatter.Serialize(str, mojString);
str.Close();
}
Morda ve kdo kako bi enostavno serializiral nek String? Hvala.
BlueRunner ::
Ahem.... ali si prepričan, da je prazna (dolga 0 bytov)? Serializacija namreč ni isti postopek, kot navadno pisanje nizov v datoteko. To pomeni, da so podatki zapisani v binarni obliki, "type" iz ukazne vrstice ali pa kakšen drug podoben program, pa kodo \0 v datoteki interpretira kot konec datoteke.
vojko20 ::
včasih pomaga če daš pred .close() še str.flush();
Zgodovina sprememb…
- spremenilo: vojko20 ()
matto87 ::
0 bytov je velikost datoteke. Sem poiskusil tudi s str.Flush(); pa ni pomagalo... Še vedno samo ustvaro datoteko, ki je pa prazna. Vendar mislim da sem odkril težavo. Iz neznanega razloga mi je to isto datoteko seriliziralo še v eno drugo mapo. Tisa datoteka pa ni prazna. Tako da bom to preučil pa verjamem da bo pol delalo.
Hvala vam za pomoč.
Hvala vam za pomoč.
Zgodovina sprememb…
- spremenil: matto87 ()
matto87 ::
V stringu sem imel namreč pot do shranjenega mp3-ja na disku. Datoteko mi je ustvarilo na to lokaciji(sicer ne vem zakaj), kjer sem imel nastavljeno pot. Deserilizacija pa se je izvedla normalno nad datoteko iz mape bin/debug.
BlueRunner ::
No ja, samo da si našel to pogrešano datoteko.
Sicer ne vem, če je to v tvojem primeru pomembno, vendar pa je trenutni delovni imenik vezan na posamezen proces. To pomeni, da ti ga lahko vsaka komponenta spremeni, potem pa bodo relativne poti kazale kar nekam. Če si npr. pot do MP3 datoteke dobil z uporabo (Open ali Save)FileDialog razreda, potem moraš paziti, da postaviš lastnost RestoreDirectory na true. Da ne bom tukaj predolg, si lahko v dokumentaciji prebereš kaj to naredi.
V splošnem pa je dobra praksa za datoteke, da zgradiš predvidljivo polno pot, ki jo potem uporabiš. Pri temu ti lahko pomagajo lastnosti razreda Application: StartupPath, ExecutablePath, LocalUserAppDataPath, ...
Sicer ne vem, če je to v tvojem primeru pomembno, vendar pa je trenutni delovni imenik vezan na posamezen proces. To pomeni, da ti ga lahko vsaka komponenta spremeni, potem pa bodo relativne poti kazale kar nekam. Če si npr. pot do MP3 datoteke dobil z uporabo (Open ali Save)FileDialog razreda, potem moraš paziti, da postaviš lastnost RestoreDirectory na true. Da ne bom tukaj predolg, si lahko v dokumentaciji prebereš kaj to naredi.
V splošnem pa je dobra praksa za datoteke, da zgradiš predvidljivo polno pot, ki jo potem uporabiš. Pri temu ti lahko pomagajo lastnosti razreda Application: StartupPath, ExecutablePath, LocalUserAppDataPath, ...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Davčne blagajne (strani: 1 2 3 4 … 24 25 26 27 )Oddelek: Programiranje | 332240 (72243) | Macketina |
» | [c#] shrani text, tabele, slikeOddelek: Programiranje | 1505 (1111) | klemen93 |
» | [C#] DeserializacijaOddelek: Programiranje | 1858 (1461) | Cvenemir |
» | branje byte[] iz MS access-ove bazeOddelek: Programiranje | 1935 (1845) | BHawk |
» | c++ datotekeOddelek: Programiranje | 4038 (3527) | Vesoljc |