Stránka 1 z 1
C# deklarace povolených znaků
Napsal: 01 říj 2017 16:04
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!
Re: C# deklarace povolených znaků
Napsal: 01 říj 2017 16:15
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..
Re: C# deklarace povolených znaků
Napsal: 01 říj 2017 16:27
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.
Re: C# deklarace povolených znaků
Napsal: 01 říj 2017 16:43
od KrisMan555
Přidej sem kód bude to lepší.
Re: C# deklarace povolených znaků
Napsal: 01 říj 2017 16:47
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();
}
}
Re: C# deklarace povolených znaků
Napsal: 01 říj 2017 17:12
od KrisMan555
Re: C# deklarace povolených znaků
Napsal: 01 říj 2017 17:22
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.
Re: C# deklarace povolených znaků
Napsal: 01 říj 2017 22:12
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.
Re: C# deklarace povolených znaků
Napsal: 15 říj 2017 21:31
od CZechBoY