Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [Programmeren VB.net] Karakters niet toe staan (https://forum.scholieren.com/showthread.php?t=1490382)

WarDevil 21-10-2006 14:40

[Programmeren VB.net] Karakters niet toe staan
 
Ik ben bezig met een programma dat cijfers uit een 10-tallig stelsel omrekent naar vijfers in een 12-tallig stelsel en andersom. De getallen in het twaafltalig stelsel zijn dus 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B. Nu wil ik dat het programma een melding geeft wanneer iemand het programma probeert te runnen met andere waarden dan deze. Ik heb zelf al wat gegoogled maar kwam niet erg ver. Ik ben dan ook vrij nieuw met programmeren. Kan iemand mij helpen? :confused:

eddie 21-10-2006 15:43

Regular expressions?

WarDevil 21-10-2006 16:10

Citaat:

eddie schreef op 21-10-2006 @ 16:43 :
Regular expressions?
Reguwatte? :eek:

WarDevil 21-10-2006 16:27

Nvm, ik heb al een omslachtige manier gevonden :P
Maar het werkt, toch bedankt voor je reactie ^_^

Dr HenDre 21-10-2006 16:48

ik weer eerlijk gezegd niet hoe je dat in VB moet doen. Maar in Object Pascal kan je bv 2 types definieren. Eentje als '0'..'9' genaamd cijfers en eentje 'A','B','a','b'. genaamd letters. En dan kan je simpel weg controleren door
if((getal in cijfers) or (getal in letters)) then ...

Droyd 25-10-2006 13:54

methode 1:

Dim base12chars As Char() = _
New Char() {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c, "A"c, "B"c}
If txtNumber.Text.IndexOfAny(base12chars) = -1 Then MessageBox.Show("Conversie niet mogelijk vanaf basis 12")


c suffix notatie dient om aan te duiden dat het om een karakter gaat, en dus geen String.

methode 2:

Dim regex As New System.Text.RegularExpressions.Regex("[1234567890AB]")
If Not regex.IsMatch(txtNumber.Text) Then MessageBox.Show("Conversie niet mogelijk vanaf basis 12")


Overzichtelijker maar als je regex echt wil snappen ben je wel even bezig.

Mogelijk kan het op een betere manier geschreven worden, correcties zijn welkom. ;)


Alle tijden zijn GMT +1. Het is nu 13:59.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.