Zabezpieczenie przed liczbami binarnymi

Odpowiedz Nowy wątek
2014-12-20 13:55
0

Jakiej metody w c# trzeba użyć, że żeby zabezpieczyć się w textBoxie przed wpisywaniem liczb binarnych lub innych? Tzn. jeśli wybieram opcję binarną, to bład ma wyskakiwać gdy wiszę liczbę dec i tak dalej.

Chodzi oczywiście o program w windows forms.

Pozostało 580 znaków

2014-12-20 14:05
4

101?, jaka to liczba? binarna, ósemkowa, dziesiętna, szesnastkowa?


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans, 2014-12-20 14:05

Pozostało 580 znaków

2014-12-20 14:09
0

Prawdę mówiąc nie wiem co odpowiedzieć, żeby mnie o brak pokory ktoś nie posądził? Może zastanów się czy zrozumiałeś moje pytanie, bo jak dla mnie twoja odpowiedź jest trochę od czapy.

Do rozwiązania mojego problemu prawdopodobnie potrzebne są jakieś metody, metody, których nie znam i których nie mogę się na msdn doszukać. Nie sądziłem jednak, że będzie tu osoba, która zada mi pytanie: co to jest 101?

edytowany 1x, ostatnio: furious programming, 2014-12-20 23:32

Pozostało 580 znaków

2014-12-20 14:13
0

101 jest liczbą dec, czy ma wyskoczyć błąd gdy wybrano opcję bin?


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2014-12-20 14:14
0

@finito bo nadałeś temu wątkowi idiotyczny tytuł. Bo zabezpieczyć się "przed liczbami binarnymi" to nie dasz rady, o czym napisał @bogdans
Bo nie trudno wykryć że ktoś wpisał coś spoza zakresu [0-9] a miał wpisać liczby dec, albo wpisał coś spoza [0-1] kiedy miał podać liczbę binarną. Ale jak ktoś ma wpisać liczbę dec czy hex a wpisze "binarną" to nie wiem jak niby chciałbyś się zabezpieczyć. Bo bo jak rozpoznasz czy 101 wpisane przez użytkownika to jest (w jego mniemaniu) liczba bin, dec czy hex?


Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.

Pozostało 580 znaków

2014-12-20 14:18
1

hmm

http://stackoverflow.com/ques[...]rt-binary-string-into-integer

Jak poleci wyjątek, to go łapiesz i juz wiesz, że liczba ma niepoprawny format.

edytowany 1x, ostatnio: misiakufal, 2014-12-20 14:18

Pozostało 580 znaków

2014-12-20 14:26
0

W evencie KeyPressed, podobnie jak tu http://stackoverflow.com/ques[...]n-c-sharp-windows-application ale to jest dla wszystkich cyfr.

Pozostało 580 znaków

2014-12-20 16:17
0

Dobra, to może dokładniej wyjaśnię o co mi chodzi, bo tytuł dałem faktycznie fatalny.
No więc mam combobox, w którym wybieram 'sysem_binarny'. Niżej mam text box, w którym wpisuję liczbę niebinarną (np 28374). Teraz Klikam konvertuj i w tej chwili program ma się zatrzymać na komunikacie "głupku, niewpisałeś liczby binarnej tylko jaką inną".

I teraz mój problem polega na tym, że nie wiem jak napisać metodę, która ma to sprawdzać i wysyłać odpowiednie komunikaty. Same komunikaty, to malutkie piwo. Mam natomiast trudność z zaprojektowaniem kodu sprawdzającego czy wpisywana liczba jest binarna czy jaka.

O to właśnie chodzi.


Tak na prawdę wystarczy mi jakaś podpowiedź...nie wiem...jakaś metoda, której nie znam. Bo przeleciałem wszystko w math oraz wszystko w numerical type. Nie znalazłem w tych działach tego, o co mi chodzi.

I tak w ogóle to szukam czegoś w rodzaju: isHex, isBinary lub isOctal.

edytowany 1x, ostatnio: finito, 2014-12-20 16:27

Pozostało 580 znaków

2014-12-20 16:45
0

Podałem Ci wyżej przykład, musisz w evencie keypress sprawdzać znak wpisany przez usera.
Albo w momencie przyciśnięcia konwertuj pobierasz zawartość textboxa i musisz sam przemielić ten string sprawdzając czy nie ma tam niedozwolonych znaków.
Albo lecisz tak jak @misiakufal podaje.

edytowany 3x, ostatnio: dam1an, 2014-12-20 17:01

Pozostało 580 znaków

2014-12-20 16:50
0

To C# jest taki upośledzony, że do funkcji parsującej nie można podać podstawy?


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
Można, co podał w przykładzie @misiakufal - dam1an 2014-12-20 16:56
To co były kolejne posty? Co prawda string "77777777777777777777777777777777799999" nie przejdzie parsowania (mimo, że jest poprawną liczbą dec i hex), ale konwersja na oct lub bin nie jest trywialna. Autor chyba nie chce konwertować takich mamutów. - bogdans 2014-12-20 17:07

Pozostało 580 znaków

2014-12-20 18:11
0
dam1an napisał(a):

W evencie KeyPressed, podobnie jak tu http://stackoverflow.com/ques[...]n-c-sharp-windows-application ale to jest dla wszystkich cyfr.

Okej, słuchajcie zadziałało mi. Hura;-) Ale nie rozumiem jednego: dlaczego nie mogę zobaczyć cyfer 01?
To jest kod:

private void wpisz_liczbe_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "^[0-1]"))
            {
                e.Handled = true;
                komunikat.Text = "To jest liczba binarna";
            }
            else
            {
                e.Handled = false;
                komunikat.Text = "To nie jest liczba binarna";
            }
        }
 

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0