Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hi, kennt jemand oder hat jemand eine funktion in vb/vba zur überprüfung ob eine eigegebene isbn nummer richtig ist?

habe hier mal einige informationen zusammengeschrieben.

is natürlich nicht das problem die funktion zu schreiben, aber das kostet einiges an zeit. und warum das rad nochmal erfinden?

wäre toll wenn jemand was weiss.

hier die infos:

(bitte nicht selbst schreiben. möchte nur die info ob und wo es so eine funktion schon gibt. die funktion sollte nur diese u.g. dinge alle miteinbeziehen.)

--------------------------------------------------------------------------------------------------------

Die ISBN hat folgendes Format, nicht alles müßte gestestet werdena-b-c-da = Länderkennzahl, ist einstelligb = Verlagskennzahl, ist 3-5 stelligc = Buchkennzahl, ist 3-5 stellig, wobei gilt: b+c = 8 (große Verlage mit großem Programm bekommen eine kleine Verlagsnummer, damit mehr Bücher möglich sind, wenn trotzdem voll, bekommen diese Verlage eine weitere Verlagsnummerd = Prüfziffer (0...9,X) wobei ich die Regel nicht kenne, nach der sie gebildet wird (Prommi kennt sie). Ich habe da was bei Google-Groups gefunden:Eine ISBN-Nummer kann auf ihre Gueltigkeit durch einen einfachen Algo- rithmus ueberprueft werden, der alle Ziffern einschliesst. ISBN 3 8 8 0 5 3 0 0 2 5

Multiplikator 10 9 8 7 6 5 4 3 2 1

---------------------------------------------

Ergebnis 30+72+64+ 0+30+15+ 0+ 0+ 4+ 5 = 220

Wenn das Ergebnis ohne Rest durch 11 dividiert werden kann, ist die ISBN-Nummer gueltig. Dem Zeichen "X" in der ISBN wird der Wert 10 zugeordnet.

Geschrieben

Habe nichts darüber gefunden. Ist aber doch ein einfacher Algorithmus. Warum in den fernen des Internets nach nem Schnipsel Code suchen, wenn man das selbst leicht hin bekommt? Das sind ne Handvoll Zeilen Code. ...und ich weiss, dass er keine Bugs hat ;):D

Geschrieben
Original geschrieben von forTeesSake

... hab im moment das problem dass zu grosse zahlen z.b. 6234567890 Modulo 11 einen überlauf verursachen..

Original geschrieben von forTeesSake

Ich habe da was bei Google-Groups gefunden:Eine ISBN-Nummer kann auf ihre Gueltigkeit durch einen einfachen Algo- rithmus ueberprueft werden, der alle Ziffern einschliesst. ISBN 3 8 8 0 5 3 0 0 2 5

Multiplikator 10 9 8 7 6 5 4 3 2 1

---------------------------------------------

Ergebnis 30+72+64+ 0+30+15+ 0+ 0+ 4+ 5 = 220

Wenn das Ergebnis ohne Rest durch 11 dividiert werden kann, ist die ISBN-Nummer gueltig. Dem Zeichen "X" in der ISBN wird der Wert 10 zugeordnet.

Mit der Methode aus Deinem ersten Post ist es nicht möglich eine 10stellige Zahl zu bekommen. Ich denke Du musst die Quersumme mod 11 nehmen.

Geschrieben

wie verspochen die funktion:

Public Function isISBN(tmpISBN)

Dim i, tmpISBNNum

Dim retVal: retVal = False

Dim arAllNumbers(10), addedNumbers

tmpISBN = Replace(tmpISBN, "-", "")

tmpISBN = StrConv(tmpISBN, vbLowerCase)

tmpISBNNum = Replace(tmpISBN, "x", "10")

If IsNumeric(tmpISBNNum) Then

If Len(tmpISBN) = 10 Then

For i = 0 To Len(tmpISBN) - 1

arAllNumbers(i) = Replace(Mid(tmpISBN, i + 1, 1), "x", "10")

Next

For i = 0 To UBound(arAllNumbers) - 2

addedNumbers = addedNumbers + CInt(arAllNumbers(i)) * (i + 1)

Next

If CInt(addedNumbers) Mod 11 = arAllNumbers(UBound(arAllNumbers) - 1) Then

retVal = True

Else

If MsgBox("Die ISBN ist ungültig. Trotzdem übernehmen?", vbYesNo) = 6 Then retVal = True

End If

Else

If MsgBox("Die ISBN ist ungültig. Trotzdem übernehmen?", vbYesNo) = 6 Then retVal = True

End If

Else

If MsgBox("Die ISBN ist ungültig. Trotzdem übernehmen?", vbYesNo) = 6 Then retVal = True

End If

isISBN = retVal

End Function

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...