NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Měnová kalkulačka

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Petr
Tvůrce
Avatar
Odpovídá na beibovaneki
Petr:25.12.2014 0:19

Chce-li to místo čáry tečku, pak stačí dát s.Replace(',', '.'). Ale tady bych to spíš typoval na fakt, že některé měny nemají kurz vyjádřený 1:1, ale třeba 1:100 nebo 1:1000. Tento parametr udává hodnota na konci prvního řádku, kde je napsáno "Množství: 1". Je-li tam něco jiného než 1, pak je třeba kurz touto hodnotou vydělit. Metoda počítající i s tímto parametrem by pak mohla vypadat následovně.

private double StahniKurz(string mena)
{
    WebClient wc = new WebClient();
    string s = wc.DownloadString(String.Format(
        "http://www.cnb.cz/miranda2/m2/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/vybrane.txt?mena={0}&od={1}&do={2}",
        mena, DateTime.Today.AddDays(-7).ToString("dd.MM.yyyy"), DateTime.Today.ToString("dd.MM.yyyy"))).TrimEnd();

    int iEnd = s.IndexOf('\n');
    int iStart = s.LastIndexOf(':', iEnd);
    string sMnozstvi = s.Substring(iStart + 1, iEnd - iStart - 1).Trim();
    double mnozstvi = Convert.ToDouble(sMnozstvi);

    s = s.Substring(s.LastIndexOf('|')+1);
    return Convert.ToDouble(s) / mnozstvi;
}
Editováno 25.12.2014 0:20
 
Odpovědět
25.12.2014 0:19
Avatar
beibovaneki
Tvůrce
Avatar
Odpovídá na Petr
beibovaneki:25.12.2014 13:20

Díky. Musel jsem tam dát s = s.Replace(',', '.'). Tím poměrem to sice nebylo, ale za to ti taky děkuju.

 
Odpovědět
25.12.2014 13:20
Avatar
bem.jiri12
Člen
Avatar
bem.jiri12:3.6.2015 11:35

pěkné a velmi naučné videjko jako vždy, děkuji moc. A chci se zeptat proč jsou použité dva gridy? Resp. ten původní automaticky vygenerovaný WPFkem nikde nepoužíváš, pouze jsi přes něj roztáhl další grid. Něják sem nepochopil jestli to má nějaký důvod a účel?

 
Odpovědět
3.6.2015 11:35
Avatar
Petr
Tvůrce
Avatar
Odpovídá na bem.jiri12
Petr:3.6.2015 12:35

Samozřejmě by bylo možné použít rovnou i hlavní grid okna, ovšem ten má výsadní postavení jako jeho hlavního kontejneru (Content nikoli Children), který je vždy právě jeden. Kdybych jej později chtěl ještě něčím okolo doplnit, osamostatnit do komponenty, posunout třeba jen do rohu okna, transformovat či animovat nebo odstranit to tak by s tím byl problém. Proto jsem vše umístil do samostatného gridu, aby případné další úpravy, byť třeba ani žádné neplánuji, neznamenaly, že kvůli tomu budu tento grid nějak dále dělit a činit další obsah závislý na tom stávajícím.

 
Odpovědět
3.6.2015 12:35
Avatar
Tomáš Kr
Člen
Avatar
Tomáš Kr:2.3.2017 16:49

Zdravím pánové, hraju si s touto kalkulačkou a chtěl jsem funkci stahování kurzivního lístku implementovat do své aplikace. Jenže jsem narazil na to, že po spuštění mi program spadne na tom, že se nelze připojit k serveru. Přitom když se dívám přes wireshark, tak si spolu aplikace a cnb server popovídá. Jenže to je vše,spustím alikaci a vyskočí neošetřená chyba (Vyvolaná výjimka: System.Net.We­bException v System.dll, Ke vzdálenému serveru se nelze připojit). Testoval jsem to jak doma na PC, tak v práci na dvou PC a nic. Nesetkal se s tím někdo?

 
Odpovědět
2.3.2017 16:49
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Tomáš Kr
Petr Čech:2.3.2017 16:56

Postni to sem jako téma na fórum. A připoj k tomu kód, kterým to provádíš.

Odpovědět
2.3.2017 16:56
the cake is a lie
Avatar
Tomáš Kr
Člen
Avatar
Odpovídá na Petr Čech
Tomáš Kr:3.3.2017 8:18

No je to kod, který jsem si stáhnul v tomto článku pod videem :-) Myslel jsem, že jen blbě vidím a mám ve svém kodu překlep, ale stáhnul jsem tuto kalkulačku a dělá to stejné. Dík, postnu.

 
Odpovědět
3.3.2017 8:18
Avatar
Neaktivní uživatel:7.5.2018 18:48

Máš tady práci s metodami TextBoxu, tak se ptám tu. Jak se jmenuje metoda po stisknutí Enter? Zkoušel jsem vážně snad všechno, co obsahovalo Enter a pořád nic :-(.

Odpovědět
7.5.2018 18:48
Neaktivní uživatelský účet
Avatar
Petr
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Petr:8.5.2018 9:40

Události obsahující "Enter" znamenají většinou "vstup", např. Enter (editor získá focus, čili klikne se na něj nebo se na něj doskáče tabem), MouseEnter (myš najede nad prvek), DragEnter (táhne se myší nějaký prvek nad tímto textboxem) atd. Oproti tomu jsou tu pak události "Leave", které znamenají pravý opak, čili že se z textboxu "odešlo".
Pokud chceš detekovat stisk Enteru, tak lze použít KeyDown, KeyUp nebo KeyPress (klávesa stisknuta dolů, stisknutá klávesa uvolněna, klávesa stisknuta kompletně, tj. zmáčknuta a uvolněna). Tyto události pak volají metody, jež mají ve vstupním parametru "e" vlastnost (KeyCode), z níž lze určit, která klávesa byla stisknuta. Je to výčet Keys, přičemž Enter se zde jmenuje Return, takže stisk enteru se určí takto:
if (e.KeyCode == Keys.Return) ...;

 
Odpovědět
8.5.2018 9:40
Avatar
Petr
Tvůrce
Avatar
Odpovídá na Petr
Petr:8.5.2018 9:47

Ta má předchozí odpověď platila pro Windows Forms. Ve WPF je to ale podobné, jen tam jsou pouze události KeyDown a KeyUp, ta vlastnost se jmenuje Key a výčet je taky Key, takže tam je to pak takto:
if (e.Key == Key.Return) ...;

 
Odpovědět
8.5.2018 9:47
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 10 zpráv z 21.