VB net - textbox, substring

Neo

Obećava
Poruka
59
Pozdrav,

U input textbox se upisuje datum u sledecem formatu (dd mm yyyy). Na primer, 10 05 2008. A u drugom textboxu, pomocu algoritma, dobija se koji je to dan u nedelji.

pomocu SUBSTRING-a, odvio sam dan, mesec i godinu.


inDate = TextBox1.Text

inDay = CInt(inDate.Substring(0, 2))
inMonth = CInt(inDate.Substring(3, 2))
inYear = CInt(inDate.Substring(6, 4))


Ako datum nije upisan u tacnom formatu, na primer ako se negde GRESKOM upise slovo umesto broja (integer), dolazi do exception error-a.

Kako mogu da da zaustavim i podesim ovo?
 
Stavi to u try blok, a u catch uhvatiš izuzetak. Npr:
try
inDay = CInt(inDate.Substring(0, 2))
inMonth = CInt(inDate.Substring(3, 2))
inYear = CInt(inDate.Substring(6, 4))
catch ex As Exception
MsgBox("Greška: " & ex.ToString())
end try

Ali, tu hvataš samo izuzetak ako inDay, inMonth ili inYear nisu brojevi. Šta ako ja ukucam 35.33.3980? Predlažem ti da modifikuješ to i iskoristiš DataTimePicker da bi ovo izbegao!
 
Stavi to u try blok, a u catch uhvatiš izuzetak. Npr:
try
inDay = CInt(inDate.Substring(0, 2))
inMonth = CInt(inDate.Substring(3, 2))
inYear = CInt(inDate.Substring(6, 4))
catch ex As Exception
MsgBox("Greška: " & ex.ToString())
end try

Ali, tu hvataš samo izuzetak ako inDay, inMonth ili inYear nisu brojevi. Šta ako ja ukucam 35.33.3980? Predlažem ti da modifikuješ to i iskoristiš DataTimePicker da bi ovo izbegao!


poz,

tvoj kod je stvarno pomogo, i ako ga bas ne razumem.

neznam sta taco "try" radi, i sta je "catch" i "ex" .


Evo jos jedno pitanje, ako neko upise sledeci format:

1 2 2003

da se automatski upise:

01 02 2003


hvala ti na predhodnom odgovoru
 
U try bloku pišeš deo koda gde može da nastane izuzetak, kao npr. inDay = CInt(inDate.Substring(0, 2)). Odnosno inDate.Substring(0, 2) će možda biti konvertovan u int a možda i neće. Ako ima slovo neće, nastaće izuzetak, koji ti hvataš i obrađuješ u catch bloku. Za ovo drugo, ne znam šta da ti kažem, ja sam pravio masku na text box-u, sa sve tačkama. Kad sam napravio, odustao sam od toga :ok: . Lako je ako unese tako, razdvojeno razmacima. Uradiš split nad tim stringom i ispitaš kolika je dužina prvog i drugog tako dobijenog stringa:

dim arDate() as string
arDate = TextBox1.Text.Split(" ")
if arDate(0).Lenght=1 then arDate(0)="0" & arDate(0)
if arDate(1).Lenght=1 then arDate(1)="0" & arDate(1)
TextBox1.Text=arDate(0) & " " & arDate(1) & " " & arDate(2)

Ali šta ako unese 1112008, da li je 11.1 ili 1.11?
 

Back
Top