Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Henkilöturvatunnuksen tarkistusmerkki

viljami [10.01.2006 16:10:12]

#

Eli tällainen koodi. Voidaan tarkastaa onko henkilöturvatunnus oikein.

Henkilöturvatunnuksen viimeinen merkki on tarkastusmerkki, sillä voidaan tarkastaa onko henkilöturvatunnus annettu oikein, jos kaveri väittää olevansa Kalle Keksiä ja hetunsa on 111180123P, voidaan se helposti todeta että näin ei ole.
vaan oikea tarkastusmerkki on K, voidaan siis päätellä Kallen huijanneen sinulle syntymäajan tai hetun loppuosan.

Vastaavaa laskukaavaa käytetään käytännössä kaikissa ohjelmissa johon hetu tarvitsee kirjoittaa, esim. virastoissa jne.

Laskeminen kaikessa yksinkertaisuudessaan on simppeli, eli koko hetu:n (lukuunottamatta viimeistä tarkastusmerkkiä) numerosarja tässä esimerkissä 111180123 jaetaan 31. Jos jakojäännös on yksinumeroinen, se on tarkistusmerkki. Muuten jakojäännös määrää tarkistusmerkkinä käytettävän kirjaimen seuraavasti:

10 A
11 B
12 C
13 D
14 E
15 F
16 H
17 J
18 K
19 L
20 M
21 N
22 P
23 R
24 S
25 T
26 U
27 V
28 W
29 X
30 Y

Eli käytännössä se mitä tällä koodivinkillä halusin tuoda esiin, on visual basicilla yksinkertainen tapa laskea jakojäännös käyttämällä Mod operaattoria.

------------------------------------------------------

Tee Formille Text1 tekstiloota, ja Command1 nappula.
Koodi sisään.

Ja kirjoita tekstilootaan hetu ilman välimerkkiä tai viimeistä merkkiä. (tarkastusmerkki)

esim. 111180123. Ohjelmaa laskee tarkastusmerkin.

Dim lasku As Long
Private Sub Command1_Click()
lasku = Text1.Text Mod 31
Select Case lasku
Case 1
Text1.Text = Text1.Text & " 1"
Case 2
Text1.Text = Text1.Text & " 2"
Case 3
Text1.Text = Text1.Text & " 3"
Case 4
Text1.Text = Text1.Text & " 4"
Case 5
Text1.Text = Text1.Text & " 5"
Case 6
Text1.Text = Text1.Text & " 6"
Case 7
Text1.Text = Text1.Text & " 7"
Case 8
Text1.Text = Text1.Text & " 8"
Case 9
Text1.Text = Text1.Text & " 9"
Case 10
Text1.Text = Text1.Text & " A"
Case 11
Text1.Text = Text1.Text & " B"
Case 12
Text1.Text = Text1.Text & " C"
Case 13
Text1.Text = Text1.Text & " D"
Case 14
Text1.Text = Text1.Text & " E"
Case 15
Text1.Text = Text1.Text & " F"
Case 16
Text1.Text = Text1.Text & " H"
Case 17
Text1.Text = Text1.Text & " J"
Case 18
Text1.Text = Text1.Text & " K"
Case 19
Text1.Text = Text1.Text & " L"
Case 20
Text1.Text = Text1.Text & " M"
Case 21
Text1.Text = Text1.Text & " N"
Case 22
Text1.Text = Text1.Text & " P"
Case 23
Text1.Text = Text1.Text & " R"
Case 24
Text1.Text = Text1.Text & " S"
Case 25
Text1.Text = Text1.Text & " T"
Case 26
Text1.Text = Text1.Text & " U"
Case 27
Text1.Text = Text1.Text & " V"
Case 28
Text1.Text = Text1.Text & " W"
Case 29
Text1.Text = Text1.Text & " X"
Case 30
Text1.Text = Text1.Text & " Y"
End Select

End Sub

T.M. [25.01.2006 21:45:26]

#

Taulukointia voisi käyttää hyväksi...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta