C# deklarace povolených znaků

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Odpovědět
Petrfoo
Level 3.5
Level 3.5
Příspěvky: 723
Registrován: 30 srp 2017 19:41
Bydliště: Brno

C# deklarace povolených znaků

Příspěvek od Petrfoo »

Zdravíčko přátelé! Ze začátku upozorňuji, že jsem v C# úplný začátečník, proto prosím buďte schovívavý pokud se ptám na nějakou jednoduchou kravinu.

Mám napsaný jednoduchý prográmek na různé operace s čísly a potřeboval bych nějak ošetřit situaci, kdy dotyčný do zadávacího pole napíše jiný znak než číslice 0-9. Ideálně aby po zadání jiného znaku a následném pokusu o výpočet vyskočil message box s informacemi o chybě. Jediná věc kterou potřebuji poradit je jak deklarovat, že jediné povolené znaky jsou číslice. Předpokládám že se to bude dělat přes funkci if (int != ...). Nebo na to jdu špatně?

Předem děkuji za rady!
Lenovo ThinkPad T480 | Intel Core i5-8250U | 8GB RAM DDR4 | Intel UHD Graphics | 256GB SSD
Dell Inspiron 15 7560 | Intel i5-7200U | nVidia GeForce 940MX | RAM 8GB DDR4 2400 MHz | 256GB SSD
Xiaomi Mi 8 | Snapdragon 845 | 6/128 GB
KrisMan555
Level 1
Level 1
Příspěvky: 75
Registrován: 24 kvě 2013 17:05

Re: C# deklarace povolených znaků

Příspěvek od KrisMan555 »

Taky jsem začátečník ale vyřešil bych to tak že bych si proměnou ve který máš uložená čísla převedl do stringu a pak bych zkontroloval jestli obsahuje pouze čísla a pak to převed zpátky..
Petrfoo
Level 3.5
Level 3.5
Příspěvky: 723
Registrován: 30 srp 2017 19:41
Bydliště: Brno

Re: C# deklarace povolených znaků

Příspěvek od Petrfoo »

Já právě nevím jak deklarovat nebo zkontrolovat, zda-li na vstupu jsou pouze číslice. Šlo by to kontrolovat až na výstupu, protože pokud je zadáno do vstupu něco jiného než čísla, tak výsledkové pole zůstane prázdné. Ale na to jak deklarovat do podmínky prázdné pole jsem také nepřišel.
Lenovo ThinkPad T480 | Intel Core i5-8250U | 8GB RAM DDR4 | Intel UHD Graphics | 256GB SSD
Dell Inspiron 15 7560 | Intel i5-7200U | nVidia GeForce 940MX | RAM 8GB DDR4 2400 MHz | 256GB SSD
Xiaomi Mi 8 | Snapdragon 845 | 6/128 GB
KrisMan555
Level 1
Level 1
Příspěvky: 75
Registrován: 24 kvě 2013 17:05

Re: C# deklarace povolených znaků

Příspěvek od KrisMan555 »

Přidej sem kód bude to lepší.
Petrfoo
Level 3.5
Level 3.5
Příspěvky: 723
Registrován: 30 srp 2017 19:41
Bydliště: Brno

Re: C# deklarace povolených znaků

Příspěvek od Petrfoo »

Kód: Vybrat vše

public MainPage()
        {
            this.InitializeComponent();
        }

        private void btnCalc_Click(object sender, RoutedEventArgs e)
        {
            int A = int.Parse(txtA.Text);
            int B = int.Parse(txtB.Text);
            int C = int.Parse(txtC.Text);
            int D = int.Parse(txtD.Text);
            int E = int.Parse(txtE.Text);
            int F = int.Parse(txtF.Text);
            int G = int.Parse(txtG.Text);
            int H = int.Parse(txtH.Text);
            int I = int.Parse(txtI.Text);
            int vysledek = A * E * I + D * H * C + G * B * F - C * E * G - F * H * A - I * B * D;
            txtVysledek.Text = vysledek.ToString();


            if (vysledek == 0)
            {
                txtVysledek.Text = "Neplatne zadani!".ToString();
            }
       
        }
Lenovo ThinkPad T480 | Intel Core i5-8250U | 8GB RAM DDR4 | Intel UHD Graphics | 256GB SSD
Dell Inspiron 15 7560 | Intel i5-7200U | nVidia GeForce 940MX | RAM 8GB DDR4 2400 MHz | 256GB SSD
Xiaomi Mi 8 | Snapdragon 845 | 6/128 GB
KrisMan555
Level 1
Level 1
Příspěvky: 75
Registrován: 24 kvě 2013 17:05

Re: C# deklarace povolených znaků

Příspěvek od KrisMan555 »

Zkus jestli to jde.
Abbc3 Spoiler Show
Naposledy upravil(a) KrisMan555 dne 01 říj 2017 17:40, celkem upraveno 1 x.
Petrfoo
Level 3.5
Level 3.5
Příspěvky: 723
Registrován: 30 srp 2017 19:41
Bydliště: Brno

Re: C# deklarace povolených znaků

Příspěvek od Petrfoo »

Tohle nefunguje.

Dodatečně přidáno po 1 minutě 33 vteřinách:
Při zadání jiného znaku (například písmena) to vypíše Uživatelem neošetřenou výjimku System.FormatException: Input string was not in a correct format.

Dodatečně přidáno po 3 minutách 34 vteřinách:
Jak mám v tom kódu if tak toho si nevšímej, to se vztahuje pouze na nulový výsledek který ti za daných okolní vyjde při určité kombinaci čísel.
Lenovo ThinkPad T480 | Intel Core i5-8250U | 8GB RAM DDR4 | Intel UHD Graphics | 256GB SSD
Dell Inspiron 15 7560 | Intel i5-7200U | nVidia GeForce 940MX | RAM 8GB DDR4 2400 MHz | 256GB SSD
Xiaomi Mi 8 | Snapdragon 845 | 6/128 GB
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7405
Registrován: 23 pro 2010 09:23

Re: C# deklarace povolených znaků

Příspěvek od faraon »

C# nepatří mezi jazyky kterými bych se domluvil, ale napadá mě několik možností:
  • Odchytit tu výjimku při chybě, případně jí odchytávat v cyklu.
  • Před převodem projít cyklem celý string znak po znaku, jestli některý není mimo rozsah '0'..'9'.
  • Prostudovat si MSDN.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: C# deklarace povolených znaků

Příspěvek od CZechBoY »

PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Odpovědět

Zpět na „Programování a tvorba webu“