Výběr měny – Visual Basic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výběr měny – Visual Basic – Fórum – Programujte.comVýběr měny – Visual Basic – Fórum – Programujte.com

 

Ervin Coep
~ Anonymní uživatel
4 příspěvky
18. 3. 2012   #1
-
0
-

Pokouším se vylepšit prorgram z článku
http://www.vbnet.cz/…em_http.aspx
tak, abych si mohl vybrat měnu, kterou chci.

Po stisknutí tlačítka se zobrazí dialog, ve kterém si pomocí ComboBoxu vyberu jednu z měn.

Kód jsem upravil takto 

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim dlg As New Dialog2
        Dim VyberMeny As String = dlg.ComboBox1.ValueMember
        Dim kurz As Single = 0
        dlg.ShowDialog()

        Try
            'vystavit požadavek na dnešní den
            Dim url As String = String.Format("http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt?date={0:dd.MM.yyyy}", Now)

            Dim rq As HttpWebRequest = HttpWebRequest.Create(url)
            'odeslat jej na server a získat odpověď

            Dim rs As HttpWebResponse = rq.GetResponse()
            'vytvořit StreamReader pro pohodlnou práci

            Dim sr As New IO.StreamReader(rs.GetResponseStream())
            'projít řádky
            While Not sr.EndOfStream

                Dim s As String = sr.ReadLine()
                Select Case VyberMeny
                    Case dlg.ComboBox1.ValueMember("USD")
                        If s.StartsWith("USA|") Then

                            kurz = CDbl(s.Substring(s.LastIndexOf("|") + 1))
                            MsgBox(String.Format("Aktuální kurz: 1 USD = {0:c}", kurz))

                        End If
                    Case dlg.ComboBox1.ValueMember("EUR")
                        If s.StartsWith("EMU|") Then
                            kurz = CDbl(s.Substring(s.LastIndexOf("|") + 1))
                            MsgBox(String.Format("Aktuální kurz: 1 EUR = {0:c}", kurz))

                        End If
                    Case dlg.ComboBox1.ValueMember("GBP")
                        If s.StartsWith("Velká Británie|") Then
                            kurz = CDbl(s.Substring(s.LastIndexOf("|") + 1))
                            MsgBox(String.Format("Aktuální kurz: 1 GBP = {0:c}", kurz))

                        End If
                End Select

            End While

            'zavřít StreamReader
            sr.Close()

            'zavřít spojení
            rs.Close()

        Catch ex As Exception
            MsgBox("", , ex.Message)
        End Try
    End Sub


Ale po vybrání měny mi to hodí chybovou hlášku "Převod řetězce USD na typ Integer není platný". Přemýšlel jsem nad tím nevím si rady, jak to udělat aby mi to šlo.
Neví prosím někdo co mám upravit? (jsem začátečník, tak mi to kdyžtak vysvětlete nějak polopaticky)
Děkuji za odpověď

Nahlásit jako SPAM
IP: 88.103.170.–
zlz
~ Anonymní uživatel
634 příspěvků
19. 3. 2012   #2
-
0
-

ValueMember je String, jeho default property je Chars(index As Integer). ValueMember("USD") je tedy ValueMember.Chars("USD"), což je špatně.

Do Case napiš rovnou ten řetězec. A pochybuju, že přes ValueMember dostaneš vybranou hodnotu. Celé bych to viděl asi takhle:

Dim VyberMeny As String = dlg.ComboBox1.SelectedItem
...
Select Case VyberMeny
    Case "USD"
        ...
Nahlásit jako SPAM
IP: 213.211.51.–
Ervin Coep
~ Anonymní uživatel
4 příspěvky
19. 3. 2012   #3
-
0
-

#2 zlz

Napsal jsem to podle tebe, a po vybrání měny se nic neděje. Program zobrazuje formulář jako by nic, a jiná tlačítka fungují.

Nahlásit jako SPAM
IP: 88.103.170.–
zlz
~ Anonymní uživatel
634 příspěvků
19. 3. 2012   #4
-
0
-

To zjištění vybrané hodnoty z comba by mělo být až potom co něco vybereš, tj. po ShowDialog. Jinak mě nic nenapadá.

Nahlásit jako SPAM
IP: 213.211.51.–
Ervin Coep
~ Anonymní uživatel
4 příspěvky
20. 3. 2012   #5
-
0
-

#4 zlz
To zjištění mám až potom co vyberu položku

Nahlásit jako SPAM
IP: 82.209.21.–
Ervin Coep
~ Anonymní uživatel
4 příspěvky
20. 3. 2012   #6
-
0
-

#5 zlz

Ano, měl jsi pravdu. Já jsem to akorát špatně pochopil.

Mělo to být takot 

Dim dlg As Dialog2

If dlg.ShowDialog() = DialogResult.OK Ten
Dim VýběrMěny As String = dlg.ComboBox1.SelectedItem
...

Děkuji za pomoc.

Nahlásit jako SPAM
IP: 88.103.170.–
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, 1 host

Podobná vlákna

Výběr routeru — založil Honza

Plovoucí výběr — založil Bernard Williams

Výběr s pravděpodobností — založil Dostál

Bezpečný výběr z DB — založil Kobi

Moderátoři diskuze

 

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