====== std.validate.uic ====== UIC-Fahrzeugnummer (Internationaler Eisenbahnverband) — 12-stellige Nummer zur eindeutigen Identifikation von Eisenbahnfahrzeugen in Europa. Die Prüfziffer an Position 12 wird über den Luhn-Mod-10-Algorithmus berechnet. Enthält kodiert: Fahrzeuggruppe, Betriebsland, Gattungsmerkmal und Seriennummer. → [[lyx_-_programmiersprache:units:validate|std.validate]] · [[lyx_-_programmiersprache:units:validate:luhn|std.validate.luhn]] ---- ===== Konstanten ===== ^ Name ^ Wert ^ Bedeutung ^ | ''UIC_OK'' | ''0'' | Gültig | | ''UIC_ERR_INVALID_LENGTH'' | ''1'' | Länge ≠ 12 | | ''UIC_ERR_INVALID_CHAR'' | ''2'' | Ungültige Zeichen (nur Ziffern erlaubt) | | ''UIC_ERR_INVALID_CHECK'' | ''3'' | Falsche Prüfziffer | ---- ===== Verwendung ===== import std.validate.uic; // UIC-Nummer (mit oder ohne Leerzeichen/Bindestriche) var uic: pchar := "56 80 22-70 001-7"; var norm: pchar := UICNormalize(uic); // "568022700017" var result: int64 := UICValidate(norm); if (result = UIC_OK) { log_info(UICGetGattung(norm)); // "56" (Fahrzeuggruppe) log_info(UICGetLaendercode(norm)); // "80" (Deutschland) log_info(UICGetSeriennummer(norm)); // "22700017" } ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''UICValidate(nr: pchar): int64'' | pub | UIC-Fahrzeugnummer validieren | | ''UICNormalize(nr: pchar): pchar'' | pub | Leerzeichen und Bindestriche entfernen | | ''UICCheckDigit(nr: pchar): int64'' | pub | Prüfziffer für 11-stelligen Stamm berechnen | | ''UICGetGattung(nr: pchar): pchar'' | pub | 2-stellige Fahrzeuggruppenkennung extrahieren | | ''UICGetLaendercode(nr: pchar): pchar'' | pub | 2-stelligen Ländercode extrahieren | | ''UICGetSeriennummer(nr: pchar): pchar'' | pub | 8-stellige Seriennummer extrahieren | | ''UICFormat(nr: pchar): pchar'' | pub | UIC-Nummer mit Leerzeichen formatieren | Letzte Aktualisierung: 2026-05-23