Hallo,
ich sitze nun seit Längerem daran, eine Kontonummer ( in diesem Fall nur Konten der Sparkasse ) auf ihre Richtigkeit zu überprüfen.
Dazu habe ich mir die Berechnungsmethode rausgesucht ( Quelle: bundesbank.de/download/zahlungsverkehr/zv_pz200909.pdf )
Die erste Methode ist die Benötigte. Also habe ich folgenden Code geschrieben:
Leider bekomme ich nicht so wirklich das richtige Ergebnis, aber vielleicht wisst ihr ja mehr darüber?
Testkontonummer sind dem PDF zu entnehmen.
Mit freundlichen Grüßen,
eXpire
ich sitze nun seit Längerem daran, eine Kontonummer ( in diesem Fall nur Konten der Sparkasse ) auf ihre Richtigkeit zu überprüfen.
Dazu habe ich mir die Berechnungsmethode rausgesucht ( Quelle: bundesbank.de/download/zahlungsverkehr/zv_pz200909.pdf )
Die erste Methode ist die Benötigte. Also habe ich folgenden Code geschrieben:
VB.NET-Quellcode
- Public Shared Function Pruefsumme(ByVal Kontonummer As String) As BooleanDim index As Integer = 0
- Dim Multi As Integer = 1
- Dim tmp As String = ReverseString(Kontonummer) ' Der String wird umgedreht
- Dim NrChars() As Char = tmp.ToCharArray ' Alles ins Array schieben
- Dim ToAdd As New List(Of Integer) ' Hier werden
- For Each c As Char In NrChars ' Jede Ziffer durchgehen und sie nach dem Modus mit 2 o. 1 multiplizieren
- Select Case Multi
- Case 1 : ToAdd.Add(CInt(c.ToString) * 2) : Multi = 2
- Case 2 : ToAdd.Add(CInt(c.ToString) * 1) : Multi = 1
- End Select
- Next
- Dim ergebnis As Integer
- For i As Integer = 0 To ToAdd.Count - 1
- If ToAdd(i).ToString.Length = 1 Then
- ergebnis += ToAdd(i)
- Else
- ergebnis += Quersumme(ToAdd(i).ToString) 'Bei zweistelliger Zahl wird die Quersumme gebildet
- End If
- Next
- Debug.Print(ergebnis.ToString)
- If NrChars(0).ToString = ergebnis.ToString.Substring(0, 1) Then
- Return True
- End If
- Return False
- End Function
Leider bekomme ich nicht so wirklich das richtige Ergebnis, aber vielleicht wisst ihr ja mehr darüber?
Testkontonummer sind dem PDF zu entnehmen.
Mit freundlichen Grüßen,
eXpire