 |
Nykomling
|
|
Reg.datum: May 2006
Inlägg: 32
|
|
Nykomling
Reg.datum: May 2006
Inlägg: 32
|
digiArt: Vill minnas att VBA främst avsett för programmering i Microsoft Word, Excel, Access etc, och skiljer sig något från VBS. De är inte fullt kompatibla. Koden som man hittar om man följer länken du tipsar om funkar tyvärr inte i VBS.
Ara: Det är en lösning på problemet om än lite omständig.
Jag tror emellertid att jag har byggt en fungerande funktion i VBS som returnerar rätt kontrollsiffra. Den går säkert att förfina men den funkar tills vidare:
Med risk för att bli utskrattad: :-)
<%
Function getLuhn(talfoljd)
a = len(talfoljd) ' kolla längden på talföljden
FOR b = a TO 1 step -1 ' stega från slutet och framåt...
c = mid(talfoljd, b, 1) ' ta fram siffran vi skall behandla i talföljden...
IF b = a THEN t=2' om vi är i slutet av talföljden... sätt vikt till 2
IF t=2 THEN ' om vikt är 2...
d=c*t ' multiplicera med vikt (2) och...
t=1 ' sätt vikt till 1
ELSE ' om vikt är annat än 2 (=1)...
d=c*t ' multiplicera med vikt (1) och...
t=2 ' sätt vikt till 2
END IF
IF d>9 THEN d = int(left(d,1)) + int(right(d,1)) ' Om produkten är större än 9, dela upp produkten och addera talen med varandra
e = e + d ' addera produkten till totalsumman
NEXT ' stega framåt i talföljden
IF e MOD 10 = 0 THEN ' om summan av produkterna är jämnt delbart med 10 är kontrollsiffran 0
h=0
ELSE ' annars, räkna ut kontrollsiffran
f = ((fix(e/10))+1)*10
h = f-e
END IF
getLuhn = h ' returnera kontrollsiffran
End Function
%>
|