std.validate.isbn
ISBN (International Standard Book Number) identifiziert Bücher weltweit eindeutig. Bis 2007 wurden 10-stellige ISBN-10-Codes verwendet, seitdem der 13-stellige EAN-basierte ISBN-13-Standard. Die Unit validiert beide Formate, prüft Prüfziffern und ermöglicht die gegenseitige Konvertierung (ISBN-10 ↔ ISBN-13). Zusätzlich wird ISSN für Zeitschriften und Serien unterstützt.
→ std.validate · std.validate.ean
Imports
std.validate.ean
Konstanten
| Name | Wert | Bedeutung |
|---|---|---|
ISBN_OK | 0 | Gültig |
ISBN_ERR_INVALID_LENGTH | 1 | Falsche Länge |
ISBN_ERR_INVALID_CHAR | 2 | Ungültiges Zeichen |
ISBN_ERR_INVALID_CHECK | 3 | Falsche Prüfziffer |
ISBN_ERR_INVALID_PREFIX | 4 | Kein gültiges ISBN-13-Präfix (978/979) |
ISBN_ERR_CANNOT_CONVERT | 5 | Konvertierung nicht möglich |
Verwendung
import std.validate.isbn;
// ISBN-13 validieren
var isbn13: pchar := "9783866801929";
var r: int64 := ISBN13ValidateFull(isbn13);
if (r = ISBN_OK) {
log_info(ISBN13Format(isbn13)); // "978-3-86680-192-9"
}
// ISBN-10 validieren und nach ISBN-13 konvertieren
var isbn10: pchar := "3866801920";
if (ISBN10ValidateFull(isbn10) = ISBN_OK) {
var as13: pchar := ISBN10To13(isbn10); // "9783866801929"
log_info(ISBN13Format(as13));
}
// ISSN validieren
var issn: pchar := "1234-5679";
if (ISSNValidate(issn) = ISBN_OK) {
log_info(ISSNFormat(ISSNNormalize(issn))); // "1234-5679"
}
// Typ erkennen
var t: int64 := ISBNDetectType("3866801920"); // 10
Funktionen
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
ISBN13ValidateFull(isbn: pchar): int64 | pub | ISBN-13 vollständig validieren (Länge, Zeichen, Prüfziffer) |
ISBN10ValidateFull(isbn: pchar): int64 | pub | ISBN-10 vollständig validieren |
ISBNDetectType(isbn: pchar): int64 | pub | ISBN-Typ erkennen; gibt 10 oder 13 zurück |
ISBNNormalize(isbn: pchar): pchar | pub | Trennzeichen (Bindestriche, Leerzeichen) aus ISBN entfernen |
ISBN13CheckDigit(isbn: pchar): int64 | pub | Prüfziffer für 12-stelligen ISBN-13-Stamm berechnen |
ISBN10CheckDigitFull(isbn: pchar): int64 | pub | Prüfziffer für 9-stelligen ISBN-10-Stamm berechnen |
ISBN10To13(isbn10: pchar): pchar | pub | ISBN-10 in ISBN-13 konvertieren |
ISBN13To10(isbn13: pchar): pchar | pub | ISBN-13 in ISBN-10 konvertieren (nur Präfix 978) |
ISBN13Format(isbn: pchar): pchar | pub | ISBN-13 mit Bindestrichen formatieren (z.B. „978-3-86680-192-9“) |
ISBN10Format(isbn: pchar): pchar | pub | ISBN-10 mit Bindestrichen formatieren |
ISSNValidate(issn: pchar): int64 | pub | ISSN-Zeitschriftennummer validieren |
ISSNNormalize(issn: pchar): pchar | pub | Trennzeichen aus ISSN entfernen |
ISSNCheckDigit(issn: pchar): int64 | pub | Prüfziffer für 7-stelligen ISSN-Stamm berechnen |
ISSNFormat(issn: pchar): pchar | pub | ISSN mit Bindestrich formatieren (z.B. „1234-5679“) |
Letzte Aktualisierung: 2026-05-22
