reklama
Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Programování v C#

Alamaster (24)|10.5.2006 15:46
Dobrý den, snažím se něco málo programovat v C#, ale ve škole nás učí Javu a C++, zajímalo by mně jestli někdo nemáte se sharpem - trochu konkrétněji, používá se spíš na webprojekty nebo i na klasické win-aplikace?
Matajon (125)|10.5.2006 15:53
Tak v C# se taky snazim programovat a spise se pouziva na Windows a Console aplikace, na webovy projekty je tady ASP.NET ;)
Alamaster (24)|10.5.2006 16:02
No jasně, ale taky se v tom dají psát ASPX stránky, nebo se pletu?
Matajon (125)|10.5.2006 16:08
Imho dají, ale stejně je lepší C# používat na win aplickace, kdyz to na to je napsany :o
Smith (10)|10.5.2006 19:23
[QUOTE=Alamaster]No jasně, ale taky se v tom dají psát ASPX stránky, nebo se pletu?[/QUOTE]

Pokud se nepletu, tak v ASP.net můžeš použít C# nebo VisualBasic.net
BiG FooT (10)|11.5.2006 13:54
Obecně lze použít jakýkoliv jazyk z balíčku VS.net pro cokoliv. Druhá věc je, že C# na to třeba není prvotně určený a třeba ve VB by se dal stejnej script udělat rychleji..
eraser (0)|11.5.2006 16:34
Programovanie WIN aplikácií (tzv. "FORMičkovanie") je veľmi podobné, až totožné s Delphi, pretože za vývojom stojí rovnaký človek.

Čo sa týka iného využitia, takmer dva roky som pracoval na informačnom systéme s trojúrovňovou architektúrou. UI (user interface) sa písalo pomocou technológie ASP.NET s použitím jazyka C#, stredná vrstva komunikovala s UI pomocou COM+ a bola programovaná taktiež v C# a komunikovala s MS SQL databázou technológiou ADO.NET.

Aplikácie napísané v .NET vyžadajú k svojmu behu Framework Redistributable Package, ktorý ešte nie je priamo integrovaný do Windows. Existujú aj alternatívne metódy, napr. pre nLite.

Zaujímavý prehľad a popis uvádza napr. Wikipedia v článku C Sharp.
Alamaster (24)|11.5.2006 22:19
myslim ze .Net Framework 1 je v SP2 pro WinXP ze?
BiG FooT (10)|12.5.2006 09:33
.net můžeš nainstalovat kamkoliv chceš; ale ano, xp jej mají zahrnutý a při aktualizaci se hned nabídne další verze
eraser (0)|12.5.2006 10:00
[QUOTE=Alamaster]myslim ze .Net Framework 1 je v SP2 pro WinXP ze?[/QUOTE]

Podľa toho, čo viem a mám overené, tak SP2 pre Windows XP Framework neobsahuje, tzn. aplikácie vytvorené v .NET jednoducho nespustíš a pri ich exekúcii obdržís chybovú hlášku.

Reálne to užívatelia zažívajú pri inštalácií ovládacieho centra pre ATI karty, ktoré pre svoje spustenie vyžaduje Framework.
martin.p (20)|23.5.2006 07:36
eraser (0)|23.5.2006 08:55
[QUOTE=martin.p]http://msdn.microsoft.cz/dotnetKurzy/default.htm[/QUOTE]

Táto hláška ma dostala...

[COLOR="Red"]Kurzy vzd?lávacího serveru DevSchool musíte prohlížet pouze prohlíže?em Microsoft Explorer verze 6.0. Stáhnout si ho m?žete na Microsoft Internet Explorer 6 CZ .[/COLOR]
Killermannvs (77)|23.5.2006 10:08
[quote=eraser]Táto hláška ma dostala...

[COLOR=red]Kurzy vzd?lávacího serveru DevSchool musíte prohlížet pouze prohlíže?em Microsoft Explorer verze 6.0. Stáhnout si ho m?žete na Microsoft Internet Explorer 6 CZ .[/COLOR][/quote]

Tuto hlasku mi to napsalo taky, ale rekl bych, ze ji tam maji prilepenou natvrdo bez ohledu na to jaky prohlizec mas. Protoze kurzy mi pak fungovaly, respektive jsem je videl.
sidney (5)|25.3.2008 20:27
Zdravím, jsem úplný začátečník a v životě jsem žádný program neřešil. Bohužel letos na škole jsme začali probírat programovací jazyk C a mě z toho jde hlava kolem. Proto vás prosím, jestli mi někdo pomůže. Potřebuji někde najít nějakou literaturu, která by byla psaná opravdu pro laiky, z které bych to pochopil. Dostali jsme příklad k vyřešení z kterého mám divoké sny :-), ale je asi zbytečné ho sem psát, protože se zde určitě příklady na "zakázku" neřeší... Ale za jakoukoliv pomoc budu vděčný. Předem děkuji
P@pi (1519)|25.3.2008 20:34
Jedná se opravdu o čisté céčko?
mech13 (5526)|25.3.2008 20:39
imho je dost dobry herout...

ale otazka je jestli ti nejde C, nebo algoritmizace...
Intri (3490)|25.3.2008 20:47
C# je jazyk podobný Javě v tom, že je zjednodušeně řečeno zapotřebí pro něj nainstalovat podvozek, na kterém se veze ( .NET Framework ). Tak jako Java ke svému životu potřebuje Java Virtual Machine ( JVM ), tak potřebuje C# k životu Framework. Využívaný je hlavně pro psaní desktopových aplikací, ty webové bych v něm moc nepsal ( i když i to samozřejmě jde ).

@sidney: Pokud jde o příklady na zakázku, opravdu se tady neřeší, ale jestli máš dotaz na nějaký konkrétní problém v příkladu, klidně sem s ním.
Matajon (125)|25.3.2008 21:15
[QUOTE=Intri;104591].ty webové bych v něm moc nepsal ( i když i to samozřejmě jde )[/QUOTE]
Náhodou ... ASP.NET je výborná věc :)
sidney (5)|25.3.2008 21:49
Ano jde o čisté céčko, i když učitel tvrdí, že C++ je prakticky stejný, že z céčka vyšlo. Bohužel tomu nerozumím, takže nevím jestli a jaký je mezi tím rozdíl... Jinak zkusím sehnat nějakou tu literaturu a pročíst to pak se vrhnu na ten úkol a až narazím na něco s čím si nebudu vědět rady tak se přijdu poradit... (ale při svých vědomostech to bude asi brzy...:-(( )
P@pi (1519)|25.3.2008 22:09
Myslím, že to bude hned při Hello World, alespoň tam jsem se poprvé sekl já :D. Už ani nevím na čem.

Jinak nechápu proč dělat C v době C#. Ne, že by to bylo na škodu, ale proč se to učit jako první jazyk? C přece není OOP nebo je?
Killermannvs (77)|25.3.2008 22:30
Prave ze neni, C++ rozsiruje C o OOP. V cistem C se programuje strukturove... ale to asi kazdy vi :D.
sidney (5)|9.4.2008 06:27
zdravím,
chci se zeptat, když použiji příkaz:
printf("Programovani\n");
lze nějak udělat aby se ten nápis Programování vypsal jinou barvou např. červeně?
JonnyC (124)|10.4.2008 13:06
Podle toho printf soudim ze jde o dotaz na C. Jde pouzit treba

system("color 4"); //pro cervenou
printf("Programovani\n");

to ale zmeni barvu pro vse, tedy cokoliv co je na konsoli napsano bude tou barvu kterous vybral

0 = Black 8 = Gray
1 = Blue 9 = Light Blue
2 = Green A = Light Green
3 = Aqua B = Light Aqua
4 = Red C = Light Red
5 = Purple D = Light Purple
6 = Yellow E = Light Yellow
7 = White F = Bright White

Pokud to chces jen na dany usek, asi to bude specificke pro jednotlive systemy, treba na windows by melo byt neco ve

#include
#include

int main(void)
{
HANDLE handle;
handle = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(handle, FOREGROUND_RED);
printf("cervena");

SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
printf("zelena");

SetConsoleTextAttribute(handle, FOREGROUND_BLUE);
printf("modra");

return 0;
}
P@pi (1519)|11.4.2008 21:02
Zdravim, programátory, mám problém :-). Potřebuji čtečku a zápis souborů (celkový projekt je o něco složitější... ;-)). Na tom bych problém neviděl, ale problém je, když si udělám:

[CODE]TextWriter Tex = new StreamWriter("neco.txt");
Tex.Write("aaaa");
Tex.Close();[/CODE]

Tak to vytvoří neco.txt a napíše to do souboru aaaa. Super. Ale když to dám do mého projektu jako metodu, tak všechno proběhne, zkompiluje, soubor se vytvoří, ale nic se tam nenapíše. Prostě to Write projede a nic :-(. Nějaký nápad? Už tu u toho asi zešedivím...

----

Dál jsem moc nepochopil, je to asi lehce stupidní dotaz, ale...
vytvářím instanci StreamWriter s parametrem (názevsouboru.txt), ale to mi ho vytvoří znova/přepíše. Jak se zapíše do existujícího souboru bez toho, abych ho musel takhle deklarovat jako parametr? Protože to mi soubor smaže... Samozřejmě je tu řešení, ten soubor si někam předtím uložit atd., ale to není příliš elegantní.

Díky moc za nápady
Logout (4018)|11.4.2008 22:11
A voláš tu metodu?
P@pi (1519)|11.4.2008 22:21
Samozřejmě že volám.

První řádka vytvoří ten soubor, druhá by měla zapsat, ale nestane se tak. Klidně to projížídm debuggerem step-by-step a nic. Určitě tam mam zase nějakou schovanou "vychytávku" :-).
Milan Šurkala (160)|12.4.2008 00:23
No, zkoušel jsem si to vytvořit jako metodu, kterou následně volám a všechno v pohodě, soubor se mi vytvořil a vše se zapsalo. Asi by to chtělo uveřejnit větší kus zdrojáku (nejlépe celou třídu), aby se našel problém :-) S druhým problémem ti bohužel asi neporadím.
P@pi (1519)|12.4.2008 13:04
Děkuji Milanovi, vyřešil to během 5 minut :D.

Samozřejmě chybí ve zdrojáku Tex.Close(); :rolleyes: :rolleyes: :rolleyes:. Úspěšně jsem si ho při úpravách zakomentoval...

EDIT: aspoň jsem ze sebe udělal debila :D. Takže se omlouvám za zcela stupidní dotaz :D.
Matajon (125)|12.4.2008 13:40
A já pro změnu poradím s druhým problémem :)
Nedělej to přímo přes konstruktor StreamWriteru, který přebírá název souboru, ale v konstruktoru mu předej už vytvořený FileStream (má to daleko víc možností, například FileMode, které Ty potřebuješ změnit) -

[CODE]FileStream fs = new FileStream("neco.txt", FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.Write("Text");
sw.Close();[/CODE]

Nebo pokud vím, tak StreamWriter má ještě jedno přetížení konstruktoru, které právě přijímá logickou hodnotu, jestli soubor přepsat nebo do něj jenom doplnit.

[CODE]StreamWriter sw = new StreamWriter("neco.txt", true);
sw.Write("Text");
sw.Close();[/CODE]
sidney (5)|17.4.2008 00:18
Zdravím. Vytvářím svůj první program a mám následující problém: Vytvořím matici A=[8][8] kde vygeneruji náhodná čísla od -100 do 100. Z těchto čísel potřebuji vybrat 2 čísla která mají nejmenší ciferný součet. Do této chvíle mám vše v pohodě. Problém nastane když vezmu např. číslo -56. Program mi zatím funguje tak, že z čísla -56 udělá absolutní hodnotu (tzn. 56) a ty cifry sečte. Jenže já bych potřeboval aby sečetlo
-5+6. Poraďte mi někdo jak toho docílit....Zde je výpis který momentálně mám:

int F_Soucet(int Cislo)
/* Funkce provadi ciferny soucet cisla */
{
int Cifra;
int Soucet=0;

Cislo=abs(Cislo);
while (Cislo!=0)
{
Soucet+=(Cislo%10);
Cislo/=10;
}
return Soucet;
}

Odstraním-li "abs" z výrazu tak to provede -5-6 což je také nežádoucí. Předem děkuji za pomoc
Logout (4018)|17.4.2008 00:38
Ahoj,
no jak bys to udělal v reálu - pokuď je číslo kladný, sečteš všechny cifry jako kladný, pokud záporný, tak první jako zápornou a další kladný. Takže nějakej if(něco) a .... chytrýmu napověz.... (řešit domácí úkol Ti tu nebudu, od toho to je, by ses to naučil :-)).
Matyáš
sidney (5)|29.4.2008 16:56
Zdravím nenašel by se tady někdo na doučování C# v Plzni, prosím ozvěte se díky.
P@pi (1519)|30.4.2008 18:52
Zdravim s dalším dotazem,
mám za úkol udělat vícevláknový downloader obrázků z webu. Stáhnu zdroják pomocí HttpWebRequest (tedy výsledek je String). Udělal jsem si normálně parser, ten hledá (první hodnota je celá cesta, druhá je pouze soubor) nebo jenom normálně předám pomocí dvou parametrů String a pak je pomocí metody WebClient.DownloadFile(cesta, soubor) stáhnu. Pak jedu znova a hledám další img tag. Tak todle není vícevláknově, ale je to filozofie té mojí aplikace. Funguje to dobře.

Problém však nastane po přechodu na více vláken. Podle zadání by se to asi mělo dělat jak je napsané výše, akorát se metoda DownloadFile zavolá pomocí jiného vlákna a parser jede dál. To mi funguje, ale problém je, že se nestáhnou všechny obrázky (jen některé a to ještě různě, někdy 10 obr., někdy 13 z 15 apod.). Asi prostě parser jede dál a pak to vlákno zinicializuje znova a ten nedotáhlý obrázek se nestáhne (moje úvaha). No tak jsem zkusil parser předělat do jiného vlákna a pomocí if a Thread.IsAlive a Thread.Sleep (x) to pozastavovat podle potřeby. Žel se mi to nepovedlo, nevím proč.

Moje otázky zní:
a, lze nějak přímo "oslovit" hlavní vlákno (tedy to, které defaultně běží bez nějakých dalších vláken a které startuje v main metodě)? Tedy abych nemusel deklarovat další vlákno a do toho zabalit to hlavní (=parser)? Potřebuji ho uspat. Samozřejmě to jde zabalit/vytvořit nové pro parser, ale zajímá mě to :-).

b, Hlavní problém. Lze nějak dynamicky měnit počet vytvořených vláken? Tedy aby mi to pro každý obrázek vytvořilo nové vlákno bez toho, abych ho musel deklarovat? Příklad budu stahovat 5 obrázků, tak to vytvoří pět vláken, když 90, tak 90 vláken. Jinak je totiž musím natvrdo deklarovat a jestliže bych chtěl 1 obr = 1 vlákno, tak to nelze, protože nevím, kolik bude obr.

c, jak na debugger ve Visual Studio 2005 a více vláken? Zdá se mi to nebo to tak nějak divně nelogicky přeskakuje mezi příkazy?

Děkuji a omlouvám se za delší popis ;-). Strýček Google už mě zklamal, pošlete linky a ještě lépe nějakou radu, díky :thumb
matilda (83)|30.4.2008 20:31
mno jsem dispozici jestli neco potrebujes sidney muzes me napsat na majl....nebo pak muzem pres icq nebo se sam mrkni na http://www.luki.webzdarma.cz do sekce programovani ....je to sice takovej mutant mezi c/c++ ale je to docela hodne obstojny navic veci jsou si dost podobny a predevsim si myslim ze dnes na skolach se nevyucuje klasicky ccko ale spis c++ aspon jeho proceduralni cast
Matajon (125)|1.5.2008 12:24
P@pi: spíš bych volil řešení nestahovat obrázky synchronně metodou WebClient.DownloadFile() ale asyncrhonně (prakticky v novém threadu) metodou WebClient.DownloadFileAsync().
P@pi (1519)|1.5.2008 13:52
[QUOTE=Matajon;118287]P@pi: spíš bych volil řešení nestahovat obrázky synchronně metodou WebClient.DownloadFile() ale asyncrhonně (prakticky v novém threadu) metodou WebClient.DownloadFileAsync().[/QUOTE]

Díky za nápad, todle mně netrklo. Zkusím a napíšu.