Rubrik: Variablen/Strings · Algorithmen/Mathematik | VB-Versionen: VB2005, VB2008 | 31.08.09 |
ISBN-Nummer auf Gültigkeit prüfen Eine Funktion zum Prüfen einer beliebigen ISBN-Nummer auf ihre Gültigkeit. | ||
Autor: Dieter Otter | Bewertung: | Views: 10.569 |
www.tools4vb.de | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Benötigen Sie eine Funktion, die die Gültigkeit einer eingegebenen ISBN-Nummer prüft? Dann ist nachfolgende Funktion genau richtig für Sie
''' <summary> ''' Prüft eine ISBN-Nummer auf ihre Gültigkeit. ''' </summary> ''' <param name="sISBN">ISBN-Nummer</param> ''' <returns>True, wenn gültig. Andernfalls False.</returns> Public Function CheckISBN(ByVal sISBN As String) As Boolean ' Bindestriche und Leerzeichen entfernen sISBN = sISBN.Replace("-", "").Replace(" ", "") If sISBN.Length > 1 Then ' Prüfziffer: letzte Stelle Dim Pruefziffer As Integer If sISBN.Substring(sISBN.Length - 1, 1).ToUpper = "X" Then ' Sonderfall: X = 10 Pruefziffer = 10 Else Pruefziffer = Val(sISBN.Chars(sISBN.Length - 1)) End If ' Summe bilden (bis auf letze Stelle) Dim Summe As Integer = 0 For i As Integer = 0 To sISBN.Length - 2 Summe += Val(sISBN.Chars(i)) * (i + 1) Next ' Errechnte Summe MOD 11 muss gleich der Prüfziffer sein If Summe Mod 11 = Pruefziffer Then Return True End If Return False End Function
Hinweis zur Gültigkeitsprüfung:
Die Prüfziffer einer ISBN-Nummer befindet sich immer an letzter Stelle. Zur Berechnung dieser Prüfziffer ist wie folgt vorzugehen:
- Multiplikation der einzelnen Ziffern von links nach rechts mit der jeweiligen Position der Ziffer (bis auf die letzte Stelle)
- Aufsummierung der Ergebnisse
- Die Gesamtsumme ist nun durch 11 zu dividieren.
- Der verbleibende Rest muss gleich der Prüfziffer sein
- Sonderfall: Ist die Prüfziffer = 10, so wird diese in der ISBN-Nummer als X dargestellt