FAQ |
Kalender |
|
![]() |
#1 | |||
|
||||
Nykomling
|
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 %> |
|||
![]() |
![]() |
Svara |
|
|