Är det någon som har färdig kod för att räkna ut OCR (bankgirot), från ett befinltigt fakturanummer? Är det kontrollsiffran DVS den sista siffran i OCR ? Jag, jag tror det, eftersom jag har "mjuk" kontroll av OCR-numret NähäFörslag på kod OCR
Kod helst i VB,
Eller var kan kan hitta exempelkod
MVH
Per S.Sv: Förslag på kod OCR
Då kan du köra mitt gamla ex.
Programarkivet:KontrollSiffra PersonNummer mfl.Sv:Förslag på kod OCR
Länken som du angav, fungerar inteSv: Förslag på kod OCR
Det är VB6 kod så du måste ha VB6 Runtime i ditt system.
Packa upp zipfilen och porta koden till ditt .net shit
Testade precis och det funkar ua hos mig.
MSVBvm60.dll skall finnas i ditt system32 (Runtime)
Option Explicit
Private Sub Command1_Click()
Dim retStr As String
If Text1.Text = "" Then Exit Sub
retStr = KontrollSiffra(Text1.Text)
Label2.Caption = retStr
Label4.Caption = Text1.Text & " - " & Label2.Caption
End Sub
Private Sub Command2_Click()
Dim retStr As String
If Text1.Text = "" Then Exit Sub
retStr = Reverse(Text1.Text)
Label5.Caption = retStr
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
'Tillåt bara siffror och BackSpace , Enter
Select Case KeyAscii
Case 8, 13, 48 To 57
If KeyAscii = 13 Then
KeyAscii = 0
Call Command1_Click
End If
Case Else
KeyAscii = 0
End Select
End Sub
Private Function KontrollSiffra(ByVal nummer As String) As String
'Regel 1. alla beräkningar sker från slutet mot början.
'Därför blir det StrReverse
'Steg för steg så du kan följa tekniken
Dim tmpStr As String, sLen As Long, strKsum As String
Dim i As Long, Ksum As Long
tmpStr = StrReverse(nummer)
sLen = Len(nummer)
'Siffror som skall multipliceras med 2
For i = 1 To sLen Step 2
strKsum = strKsum & CStr(CLng(Mid$(tmpStr, i, 1)) * 2)
Next 'i
'Siffror som skall multipliceras med 1
For i = 2 To sLen Step 2
strKsum = strKsum & Mid$(tmpStr, i, 1)
Next 'i
sLen = Len(strKsum)
'Summera alla enskilda siffror tex 16 blir 1 + 6
For i = 1 To sLen
Ksum = Ksum + CLng(Mid$(strKsum, i, 1))
Next 'i
Ksum = 10 - (Ksum Mod 10)
If Ksum = 10 Then Ksum = 0
'Returnera resultatet
KontrollSiffra = CStr(Ksum)
End Function
Private Function Reverse(ByVal nummer As String) As String
Dim tmpStr As String, sLen As Long, i As Long
sLen = Len(nummer)
For i = sLen To 1 Step -1
tmpStr = tmpStr & Mid$(nummer, i, 1)
Next ' i
Reverse = tmpStr
End Function