Allgemein Kostenlose Downloads Tutorials Visual Basic.NET Visual Basic.NET - Snippets

[VB.NET][SNIPPET] EAN Prüfziffer berechnen

Hallo,
Ich habe einen Code geschrieben mit dem Ihr die Prüfziffer einer EAN nummer berechnen könnt und damit überprüfen könnt ob der EAN gültig ist oder nicht.

Wie wird die Prüfziffer berechnet?

  1. Die einzelnen Ziffern werden abwechselnd mit 1 und 3 Multipliziert(bis auf die Letzte Ziffer da dies die Prüfsumme ist).
  2. Auf das ergebnis der einzelnen Ziffern wird dann Modulo 10 angewandt um die Einerstelle rauszufiltern.
  3. Diese einerstellen werden dann miteinander Addiert
  4. Auf das Ergebnis wird dann wieder Modulo 10 angewandt und 10 – das Ergebnis ist dann die Prüfziffer.

Code:

''' <summary>
''' Überprüft die Prüfziffer des angegebenen EAN Codes.
''' </summary>
''' <param name="EAN">Der EAN-Code der überprüft werden soll.</param>
''' <returns>Wenn die Prüfziffer stimmt, True ansonsten False.</returns>
''' <remarks></remarks>
Function CheckChecknumber(ByVal EAN As String) As Boolean
	Dim chars() As Char = EAN.Substring(0, EAN.Length - 1).ToCharArray
	Dim Multiplikator = 1
	Dim CheckNumber = 0
	Dim numb = 0
	For Each c In chars
		If Integer.TryParse(c, numb) Then
			CheckNumber += (numb Mod 10) * Multiplikator
			Multiplikator = If(Multiplikator = 1, 3, 1)
		End If
 
	Next
	Return If(((10 - CheckNumber Mod 10) Mod 10) = Integer.Parse(EAN.Last), True, False)
End Function
 
''' <summary>
''' Generiert die Prüfziffer des Angegebenen EAN Codes.
''' </summary>
''' <param name="EAN">Der EAN Code aus dem die Prüfziffer Generiert werden soll.</param>
''' <returns>Gibt die Prüfziffer des angegebenen EAN Codes zurück</returns>
''' <remarks></remarks>
Function GetChecknumber(ByVal EAN As String) As Integer
	Dim Numbers() As Char = EAN.ToCharArray
	Dim Multiplikator As Integer = 1
	Dim CheckNumber As Integer = 0
	Dim numb = 0
	For Each c As Char In Numbers
		If Integer.TryParse(c, numb) Then
			CheckNumber += (numb Mod 10) * Multiplikator
			Multiplikator = If(Multiplikator = 1, 3, 1)
		End If
	Next
	Return (10 - CheckNumber) Mod 10
End Function

Ich hoffe Ihr könnt damit was anfangen 🙂
Kritik und vorschläge wie immer erwünscht.

Gruß,
Julian


730x gelesen

Print Friendly, PDF & Email

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.