Ukladani promenych na disk – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ukladani promenych na disk – .NET – Fórum – Programujte.comUkladani promenych na disk – .NET – Fórum – Programujte.com

 

cybernick0
Newbie
26. 2. 2009   #1
-
0
-

Ahoj, nevite jakym nejjednodussim zpusobem lze v c# ukladat a opet nacitat obsah promennych na a z disku(souboru)? Potrebuji ukladat a nacitat konfiguracni data - je to jen par int promenych?
Predem Diky

Nahlásit jako SPAM
IP: 147.228.183.–
Mega.Lama0
Stálý člen
26. 2. 2009   #2
-
0
-

To cybernick :
odporúčam Config.ini ....ináč...
Texťák,šifrovaná databáze,dátové soubory,temporary,cookies =D...NA HDD uložíš všetko...

Nahlásit jako SPAM
IP: 85.135.237.–
http://www.youtube.com/watch?v=j_tWGyCK6Ds ...kto by veril,že je to otcov bratranec z druhého kolena?...
cybernick0
Newbie
26. 2. 2009   #3
-
0
-

To Mega.Lama :
diky ale, najdu nekde odkaz nebo priklad jak na to? Googlil jsem skoro hodinu a zatim jsem nenarazil na nic, co by me nasmerovalo...

Nahlásit jako SPAM
IP: 147.228.183.–
Chrasty
~ Redaktor
+4
Posthunter
26. 2. 2009   #4
-
0
-

To Mega.Lama : S prominutím, zbláznil ses? .ini soubory jsou v .NET "podporovány" jen tak tak, aby se dodržela jakás takás zpětná kompatibilita (a té kompatibility je dosaženo tak, že importuješ Kernel32.dll). Z pohledu .NET jsou ale .ini soubory zastaralé!

Pro .NET jsou .config soubory se kterými se pracuje pomocí namespace System.Configuration. Zkus googlovat tohle a uvidíš, že se ti to hned povede:-) .ini skutečně ne.

Nahlásit jako SPAM
IP: 193.179.196.–
Mega.Lama0
Stálý člen
26. 2. 2009   #5
-
0
-

To Chrasty :
...počítaj s tým že aj *.txt je vhodný...záleži od toho aký typ dôvených informácií tam chceš mať...
.config neviem...ešte som nepozeral do toho súboru ale niekedy sa doň mrknem...

Nahlásit jako SPAM
IP: 85.135.237.–
http://www.youtube.com/watch?v=j_tWGyCK6Ds ...kto by veril,že je to otcov bratranec z druhého kolena?...
Chrasty
~ Redaktor
+4
Posthunter
26. 2. 2009   #6
-
0
-

To Mega.Lama : Když už uvádíš .ini, tak jen říkám, že jeho použití v .NET je naprosto nevhodné, .config uvádím jako jeho nástupce. No jo, .txt, ale pro ukládání nastavení aplikace... v .NET je i tak .config nejvhodnější, nejpohodlněji se s ním pracuje, díky System.Configuration.

Nahlásit jako SPAM
IP: 193.179.196.–
Mega.Lama0
Stálý člen
26. 2. 2009   #7
-
0
-

To Chrasty :
nj...to nech si napíše triedu pre svoj súbor so svojou príponou v C++ a nech sa s tým baví ako chce...

Nahlásit jako SPAM
IP: 85.135.237.–
http://www.youtube.com/watch?v=j_tWGyCK6Ds ...kto by veril,že je to otcov bratranec z druhého kolena?...
Chrasty
~ Redaktor
+4
Posthunter
26. 2. 2009   #8
-
0
-

To Mega.Lama : Proč by to dělal? Vždyť vůbec nenapsal, že chce mermomocí použít .ini

Nahlásit jako SPAM
IP: 193.179.196.–
Mega.Lama0
Stálý člen
26. 2. 2009   #9
-
0
-

To Chrasty :
...protože jak vždy,Windowsu je jedno akú má súbor príponu...

Nahlásit jako SPAM
IP: 85.135.237.–
http://www.youtube.com/watch?v=j_tWGyCK6Ds ...kto by veril,že je to otcov bratranec z druhého kolena?...
Chrasty
~ Redaktor
+4
Posthunter
26. 2. 2009   #10
-
0
-

Windows sice jo, ale .NETu co se .config píše to fakt jedno není. Doporučuju si o tom něco přečíst.

Nahlásit jako SPAM
IP: 193.179.196.–
Mega.Lama0
Stálý člen
26. 2. 2009   #11
-
0
-

To Chrasty :
nj...

Nahlásit jako SPAM
IP: 85.135.237.–
http://www.youtube.com/watch?v=j_tWGyCK6Ds ...kto by veril,že je to otcov bratranec z druhého kolena?...
dannyk0
Věrný člen
26. 2. 2009   #12
-
0
-

Nebo muzes pouzit XML pro ukladani, popripade binarni format nebo serializaci.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
Pebble0
Návštěvník
27. 2. 2009   #13
-
0
-

To Chrasty : Nic proti, ale pro někoho, kdo tenhle Namespace slyší poprvý je dost těžký se v něm pořádně vyznat. Nejjednodušší způsob je asi fakt uložit to do obyč. txt souboru (ať už má příponu, jakou chce) a ve formě pole to načíst a s tim už si pak dělat co je potřeba. Neřikám, že to je podle nejnovějších trendů, ale funguje to :)

Nahlásit jako SPAM
IP: 83.208.77.–
z_moravec
~ Redaktor
+3
Posthunter
27. 2. 2009   #14
-
0
-
Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Pebble0
Návštěvník
27. 2. 2009   #15
-
0
-

To z_moravec : Ano, návod je v pohodě, předpokládá ovšem znalost XML, což je asi sice v dnešní době normální, ale pokud někdo začíná s .NETem jako s něčim úplně novym (já sem na něj přešel před půl rokem z FoxPro a nestačm se divit ani orientovat), je XML další poměrně obsáhlej balík k nastudování. Další věc je v tom, že .Net je prostě tak obsáhlej, že ho jeden člověk prostě neprozkoumá celej (pokud se tim neživí, a mnohdy ani tehdy ne) - já např. slyšel o config souborech a že se to dá dělat i takhle poprvé až od Chrastyho, kterej mi tímto zase (jako již několikrát) rozšířil obzory (za což mu díky). V prográmcích, co si dělám, to dělám tak, jak sem to popsal, protože to byla prostě jednoduchá a i jediná alternativa, kterou sem znal (přečet sem o C# asi 5 učebnic - od Wroxu po Microsoft Press a o tomhle sem tam nenašel nic).

Nahlásit jako SPAM
IP: 83.208.77.–
z_moravec
~ Redaktor
+3
Posthunter
27. 2. 2009   #16
-
0
-

To Pebble : Pochopil jsem, že zatím nemá zkušenosti ani s ini, txt, atd. ani s .config, takže si myslím, že nejlepší je zvolit .config, protože je reálná naděje, že s tím vystačí hodně dlouhou dobu. To se o ini nedá říct (aspoň doufám :-)).

Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Chrasty
~ Redaktor
+4
Posthunter
27. 2. 2009   #17
-
0
-

Právě jsem stejně jako z_moravec vycházel z toho, že autor dotazu nemá zkušenosti s vůbec žádným způsobem ukládání nastavení a do budoucna se mi zdá .config jako nejlepší řešení.

To Pebble : Myslím, že jsem se o .config dozvěděl poprvé z knihy Pro C# and the .NET Platform, jinak v ostatních co jsem četl o tom taky zmínka nebyla...aspoň pokud se dobře pamatuju :-)

Nahlásit jako SPAM
IP: 193.179.196.–
Mega.Lama0
Stálý člen
27. 2. 2009   #18
-
0
-

To Chrasty :
ja si myslím že normálny textový súbor by mu na začiatok rozhodne pomohol,a nie zaťažovať ho ešte aj s XML,to mu len pridávate prácu...

Nahlásit jako SPAM
IP: 85.135.240.–
http://www.youtube.com/watch?v=j_tWGyCK6Ds ...kto by veril,že je to otcov bratranec z druhého kolena?...
Chrasty
~ Redaktor
+4
Posthunter
27. 2. 2009   #19
-
0
-

Já si zase myslím, že kdyby už uměl použít StreamReader/Writer a podobné věci na práci s obyč soubory, už by to tak udělal a asi by se neptal. Takže v tomhle směru jde od nuly tak jako tak, takže proč mu rovnou neporadit postup, který se používá i u "velkých" aplikací? Navíc mi přijde použití System.Configuration za tímhle účelem naprosto luxusně pohodlné. Jen specifikuješ ID toho elementu a ono ti to vrátí jeho hodnotu/nastavení. Žádná práce s načítáním stringů z .txt, parsováním a tak..

Nahlásit jako SPAM
IP: 193.179.196.–
Mega.Lama0
Stálý člen
27. 2. 2009   #20
-
0
-

To Chrasty : nj...

Nahlásit jako SPAM
IP: 85.135.240.–
http://www.youtube.com/watch?v=j_tWGyCK6Ds ...kto by veril,že je to otcov bratranec z druhého kolena?...
cybernick0
Newbie
27. 2. 2009   #21
-
0
-

No je pravda, ze moc zkusenosti s ukladanim nemam, i kdyz jsem se se soubory a praci s nimi trochu setkal. Ale prislo mi takove nesikovne ukladat konfiguracni nastaveni do obycejneho textaku a zpracovavat to pres retezec. A studovat XML kvuli ulozeni 4 promenych nekam na disk mi zase prijde pro tento ucel zbytecne. Jasne ze kdyz by byl nekde jednoduchej postup tak by to taky slo. V Jave jsem nemel problem najit a ukladat objekty na disk, tady v C# jsem prave nic sikovneho najit nemohl... Kazdopadne diky za tipy, snad to rychle rozlousknu.

Nahlásit jako SPAM
IP: 85.70.52.–
Chrasty
~ Redaktor
+4
Posthunter
27. 2. 2009   #22
-
0
-

To cybernick : Na práci s .config znalost XML nepotřebuješ, vůbec. Ukázka:

Zápis hodnoty:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  

config.AppSettings.Settings["mojeCislo"].Value = "3";
config.Save(ConfigurationSaveMode.Modified);
Načtení hodnoty:
string value = ConfigurationManager.AppSettings["mojeCislo"];  
Zde přítomní spekulanti o vhodnosti a jednoduchosti tohoto postupu musí snad uznat, že je to nádhera. Vezmeš libovolný string (v tomto případě číslo 3), dáš mu libovolné jméno (v tomto případě mojeCislo), celý soubor uložíš a nastavení je uloženo. Při načítání stačí jen jediný řádek kódu, ve kterém se odkážeš na jméno té a té položky, třeba mojeCislo.

EDIT: Kdyžtak se mrkni na MSDN na přetížené verze těch metod, od každé je jich pár a umí pár zajímavých věcí.

Nahlásit jako SPAM
IP: 193.179.196.–
dannyk0
Věrný člen
28. 2. 2009   #23
-
0
-

Taky o tomhle configure slysim poprve a je to pekna vec.Jak je zmineno vyse,na ulozeni 4 promennych je xml fakt zbytecny a slozity,ale i kdyz XmlSerializerem to neni zadna veda.Relativne pekny prikladek:



http://www.switchonthecode.com/tutorials/csharp-tutorial-xml-serialization


BTW: K xml hodnotam se da taky pristupovat zpusobem stejnym,jako u Configuration.


XmlDocument_promenna.DocumentElement["prvek_nebo_idx"]


To jen tak na okraj pro pozdejsi pouziti, kdyby mel zajem :)

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
cybernick0
Newbie
28. 2. 2009   #24
-
0
-

To Chrasty :

Diky, presne tohle mi dost pomohlo. Uz ukladam bez problemu, ale neslo to takhle lehce. Musel jsem nejdrive vytvorit samotny config soubor se stejnym jmenem jako spousteny projekt a do nej vlozit:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>
<appSettings>
<add key="mojeCislo"/>
</appSettings>
</configuration>

a ukladat pres
config.Save("nazev toho config souboru", ConfigurationSaveMode.Modified); 


Bez vytvoreneho config souboru to vyhazovalo vyjimku a ukladani bez nazvu souboru take neslo, ale takhle to beha.

Nahlásit jako SPAM
IP: 85.70.52.–
cybernick0
Newbie
3. 3. 2009   #25
-
0
-

Tak jeste opravicka. Ukladani viz Chrasty funguje bez problemu, to jak jsem psal vyse funguje jen pri debugu. Staci tedy vytvorit konfiguracni soubor a neni s tim zadny problem...

Nahlásit jako SPAM
IP: 85.70.52.–
rudolf_franek0
Stálý člen
5. 3. 2009   #26
-
0
-

Jeste je mozne pouzit "klikacku" - ktera ve finale vytvori .config file, ale neni treba to programovat. Pro pokrocileho je lepsi postup vyse uvedeny, zacatecnik (nebo milovnik klikatek) si to muze naklikat a prozkoumat, co ze mu to Studio vytovrilo..

Ve vlastnostech projektu si vytvorim "settings" a do nich pridam sve hodnoty a nejak je pojmenuji. Visual Studio pak vygeneruje tridu, K jejiz instanci lze za behu pristupovat pres statickou promennou. Tato instance nam poskytuje zadane hodnoty pres property (vlastnosti), je schopna je menit a provadet Save a Reload. Hodnoty v "settings" je mozne navazat na Form i primo v designeru.

Nahlásit jako SPAM
IP: 90.178.66.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 50 hostů

Podobná vlákna

Ukládání dat na disk — založil sh00ter

Posílání proměných — založil Ruda

Více proměných — založil Hranicarrr

C# - předání proměných — založil petrl

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý