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

Petrfoo
Level 3.5
Level 3.5
Příspěvky: 723
Registrován: srpen 17
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline

C# deklarace povolených znaků

Příspěvekod Petrfoo » 01 říj 2017 16:04

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

Reklama
KrisMan555
Level 1
Level 1
Příspěvky: 75
Registrován: květen 13
Pohlaví: Muž
Stav:
Offline

Re: C# deklarace povolených znaků

Příspěvekod KrisMan555 » 01 říj 2017 16:15

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: srpen 17
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline

Re: C# deklarace povolených znaků

Příspěvekod Petrfoo » 01 říj 2017 16:27

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: květen 13
Pohlaví: Muž
Stav:
Offline

Re: C# deklarace povolených znaků

Příspěvekod KrisMan555 » 01 říj 2017 16:43

Přidej sem kód bude to lepší.

Petrfoo
Level 3.5
Level 3.5
Příspěvky: 723
Registrován: srpen 17
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline

Re: C# deklarace povolených znaků

Příspěvekod Petrfoo » 01 říj 2017 16:47

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: květen 13
Pohlaví: Muž
Stav:
Offline

Re: C# deklarace povolených znaků

Příspěvekod KrisMan555 » 01 říj 2017 17:12

Zkus jestli to jde.
► Zobrazit spoiler
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: srpen 17
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline

Re: C# deklarace povolených znaků

Příspěvekod Petrfoo » 01 říj 2017 17:22

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: 7356
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: C# deklarace povolených znaků

Příspěvekod faraon » 01 říj 2017 22:12

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: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# deklarace povolených znaků

Příspěvekod CZechBoY » 15 říj 2017 21:31

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


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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti