Find Integer v Textboxu   zodpovězená otázka

VB.NET, Komponenty, Algoritmy

Je možné vyhledat číslo v textboxu? Uživatel například do TB napíše

86 kusů

a potřebuji, aby se, v události Leave, číslo 86 uložilo do proměnné Integer a z textboxu se smazal zbytek. Potřebuji, aby to NEBYLO závislé na slově kusů.

Thanks.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Použijte MaskedTextBox nebo NumericUpDown a nebudete muset řešit hovadiny.

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět

Masked Textbox je, pokud se nepletu, závislý na délce čísla a pokud není vyplněný, zobrazuje se .

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, pletete se. Mimochodem nechápu, proč každý za každou cenu musí pro zadávání číselných hodnot používat TextBox a řešit validaci. Jako by nebyly jiné, mnohem vhodnější komponenty.

nahlásit spamnahlásit spam -3 / 3 odpovědětodpovědět

V Masked Textboxu si můžete nastavit masku podle potřeby a je to dostatečně variabilní, aby se to dalo využít na většinu běžných činností.

Podívejte se na tento odkaz, jsou tam pěkně popsané jednotlivé symboly včetně praktických příkladů. Po chvilce laborovaní se z toho dá poskládat maska šitá na míru.

http://blog.vyvojar.cz/bst/archive/2004/...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Příště použiji :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak, než jsem přečetl odpovědi, udělal jsem to takto. Ale děkuji vám :)

        Dim novyText As String = ""
        For i As Integer = 0 To text.Length - 1
            Dim p As String = text(i).ToString()
            If p = "1" OrElse p = "2" OrElse p = "3" OrElse p = "4" OrElse p = "5" OrElse p = "5" OrElse p = "7" OrElse p = "8" OrElse p = "9" OrElse p = "0" Then
                novyText &= p
            End If
        Next

nahlásit spamnahlásit spam 0 odpovědětodpovědět

a takto ?

Dim novyText As String = ""
For i As Integer = 0 To text.Length - 1
     Dim p As String = text(i).ToString()
     If IsNumeric(p) Then
           novyText &= p
     End If
Next

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dík :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Mno trochu lépe by asi bylo:

Dim novyText As String = ""
For i As Integer = 0 To text.Length - 1
     dim p as char = text(i)
     if char.isnumber(p) then
          novyText &= p
     End If
Next

...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

nechci být označen za "rejpala", ale co když tam někdo napíše "86 kusů a 5 polovin" -:)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pro tento případ bych navrhoval vytvořit v aplikaci nějakou hodně sprostou hlášku, aby uživatel-potížista hned věděl co si o něm vývojář myslí;)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Správně. Na uživatele - potížisty je třeba bič. Ale takový uživatel - puntíčkář je ještě horší. Může zadat třeba "kg celkem = 86,5 " A teď si postupně vyzkoušejte všechny předchozí metody na převod textu na integer :-)

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět

Toto je přesně příklad kriplovského přístupu k věci. Správně napsaná aplikace umožňuje zadat pouze správné hodnoty a to pomocí ovládacího prvku určeného pro zadávání čísel.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

A správně napsaná aplikace má být co nejjednodušší. Proto používám toto, aby uživatel rychle psal i třeba datum, aby pole rozumělo znakům ,+-*/... :-)

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Správně napsaná aplikace se má co nejlépe ovládat uživatelům, plnit svojí funkci na 100% a nezabírat zbytečně mnoho systémových prostředků. V kolika případech si myslíte že uživatel využije takovouto funkčnost (za předpokladu že vůbec bude vědět, že něco takového existuje)?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Bude vědět: bude možnost deaktivace v nastavení, bude to v F1 popsáno. A svoji funkci to plní na 200%. Aplikace má i automatickou kontrolku, takže prostředky šetří. Konec tématu.

nahlásit spamnahlásit spam -4 / 4 odpovědětodpovědět

Pane Linharte, pokud jste nepochopil správně, oba příspěvky jsem psal se značnou mírou ironie. Samozřejmě je třeba aby uživatel mohl a směl zadat pouze správné hodnoty (čísla, texty, datumy...). V tom máte naprostou pravdu. Pokud byste to normálně lidsky a třeba s příkladem vysvětlil (pokud jste tedy chtěl reagovat), tak by to bylo pro tazatele mnohem užitečnější, než jen strohé a přisprostlé konstatování "nebudete muset řešit hovadiny". Možná by bylo dobré si přečíst pravidla zde: http://vbnet.cz/ForumRules.aspx Kdyby vám to lidsky myslelo alespoň z poloviny toho, jak vám to myslí programátorsky, tak byste to asi pochopil. Jako programátor jste možná skvělý, jako člověk.....(doplňte si sám)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Požadovat slušné vyjadřování a "lidské myšlení", ať už je to cokoliv, po páně Linhartovi není nepodobné bojování s větrnými mlýny.

Vyzobněte si z komentářů věci, které se týkají programování, a zbytek prostě ignorujte.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Bylo by dobré zapracovat do vstupu

také tucty, kopy, pídě a šlápoty.. :)

...

Skvělý návrh s ošetřením peprnou hláškou!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ne, peprné hlášky v aplikaci jsou věci, za něž by se programátoři měli střílet, a to i pokud se programováním neživí.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ten smajlík má ježka? :D

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback