Diskuze: Zakódování dat do souboru

C# .NET .NET (C# a Visual Basic) Zakódování dat do souboru American English version English version

Avatar
denoy
Člen
Avatar
denoy:

Zdravim,
chci se zeptat, jak by se dal vytvořit soubor nečitelný pro uživatele (nejspíše .dat tam může být opravdu cokoliv) a poté aby ten soubor aplikace přečetla, jednalo by se o obyčejne texty, údaje, uživatelovo nastavení atp.

 
Odpovědět 30.7.2012 3:07
Avatar
matesax
Redaktor
Avatar
Odpovídá na denoy
matesax:

Můžeš si pro zábavu udělat vlastní šifrování - viz. můj pragram Fander. Zápis takovéhoto textu se provádi jednoduše - jako obyčejný text - StreamWriter... A ten může psát snad všude - tedy i do .dat - sám jsem to dělal. Ale jinak tu je System.Securi­ty.Cryptograp­hy se kterým můžeš šiforvat "skutečně". Viz.: http://support.microsoft.com/kb/307010/cs

 
Nahoru Odpovědět 30.7.2012 6:31
Avatar
matesax
Redaktor
Avatar
matesax:

Ale stačil obyčejný google - příště zkus prvně ten...

 
Nahoru Odpovědět 30.7.2012 6:32
Avatar
Odpovídá na denoy
David Jančík [sczdavos]:

Do souborů .dat se většinou zapisuje v binární formě:

FileStream fs = null;
BinaryWriter bw = null;
BinaryReader br = null;
try
{
        fs = new FileStream(@"soubor.txt", FileMode.Create);
        bw = new BinaryWriter(fs);
        br = new BinaryReader(fs);
        bw.Write(promennaKterehokoliTypu);
        int a = br.ReadInt32();
        bw.Flush(); // jen při zápisu
}
catch (IOException e)
{...}
finally
{
        if (bw != null)
                bw.Close();
}
Nahoru Odpovědět 30.7.2012 7:18
Čím více času dostaneš, tím méně ho máš.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na denoy
David Čápka:

Podívej se na třídu BinaryWriter a BinaryReader, umožňují zápis primitivních typů v binární podobě, jde tak dělat serializace objektů.

Jsou tu jisté nevýhody, např. migrace mezi verzemi souborů, takže to není moc vhodné řešení pro nějaké velké databáze. Když totiž změníš strukturu (např. přidáš jeden typ navíc), už se ti data narozdíl např. od XML správně nanačtou.

Nahoru Odpovědět 30.7.2012 10:06
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.