Inhaltsverzeichnis

std.validate.vin

VIN (Vehicle Identification Number) / FIN (Fahrzeugidentifikationsnummer) nach FMVSS 565 — der weltweite Standard zur eindeutigen Fahrzeugidentifikation (ISO 3779). Die Prüfziffer an Position 9 wird über ein Mod-11-Verfahren mit Transliterationstabelle (A=1, B=2 … Z=9) und Positionsgewichten berechnet.

std.validate


Konstanten

Name Wert Bedeutung
VIN_OK 0 Gültig
VIN_ERR_INVALID_LENGTH 1 Länge ≠ 17
VIN_ERR_INVALID_CHAR 2 Ungültiges Zeichen (I, O, Q verboten)
VIN_ERR_INVALID_CHECK 3 Falsche Prüfziffer
VIN_ERR_INVALID_YEAR 4 Ungültige Modelljahrkennung

VIN-Struktur

Stellen Bezeichnung Bedeutung
1–3 WMI World Manufacturer Identifier (Hersteller)
4–8 VDS Vehicle Descriptor Section (Modell, Typ)
9 Check Prüfziffer (nur US-Norm)
10 Modelljahr Buchstaben/Ziffern-Code für Produktionsjahr
11 Werk Produktionswerk
12–17 Seriennummer Fortlaufende Seriennummer

Verwendung

import std.validate.vin;

var vin: pchar := "WBA3A5G59DNP26082";  // BMW
var result: int64 := VINValidate(vin);
if (result = VIN_OK) {
    log_info(VINGetWMI(vin));         // "WBA" (BMW AG)
    log_info(VINGetModelYear(vin));   // "2013"
    log_info(VINGetSerial(vin));      // "DNP26082"
}

// Prüfziffer berechnen
var check: pchar := VINCheckDigit("WBA3A5G5_DNP26082");  // "_" = Prüfziffer-Position


Funktionen

Signatur Sichtbarkeit Beschreibung
VINValidate(vin: pchar): int64 pub VIN/FIN vollständig validieren
VINCheckDigit(vin: pchar): pchar pub Prüfziffer berechnen („0“–„9“ oder „X“)
VINGetWMI(vin: pchar): pchar pub World Manufacturer Identifier (3 Zeichen) extrahieren
VINGetVDS(vin: pchar): pchar pub Vehicle Descriptor Section (Stellen 4–8) extrahieren
VINGetModelYear(vin: pchar): pchar pub Modelljahr als vierstellige Jahreszahl zurückgeben
VINGetSerial(vin: pchar): pchar pub Seriennummer (Stellen 12–17) extrahieren
VINNormalize(vin: pchar): pchar pub VIN normalisieren (Leerzeichen entfernen, Großbuchstaben)

Letzte Aktualisierung: 2026-05-23