====== std.validate.lei ====== LEI (Legal Entity Identifier, ISO 17442) identifiziert juristische Personen im globalen Finanzmarkt eindeutig. Die Prüfung erfolgt über den Mod-97-Algorithmus wie bei IBAN. Das Format ist 20 alphanumerische Zeichen: 4 LOU-Präfix + 14 Entitätscode + 2 Prüfziffern. → [[lyx_-_programmiersprache:units:validate|std.validate]] · [[lyx_-_programmiersprache:units:validate:iban|std.validate.iban]] · [[lyx_-_programmiersprache:units:validate:isin|std.validate.isin]] ---- ===== Konstanten ===== ^ Name ^ Wert ^ Bedeutung ^ | ''LEI_OK'' | ''0'' | Gültig | | ''LEI_ERR_INVALID_LENGTH'' | ''1'' | Länge ≠ 20 | | ''LEI_ERR_INVALID_CHAR'' | ''2'' | Ungültiges Zeichen | | ''LEI_ERR_INVALID_CHECK'' | ''3'' | Mod-97-Prüfung fehlgeschlagen | ---- ===== Verwendung ===== import std.io; import std.alloc; import std.validate.lei; fn main(): int64 { var lei: pchar := "5299000J2N45DDNE4Y28"; var buf: int64 := alloc(32); Print("rc="); PrintLn(IntToStr(LEIValidate(lei as int64))); LEIGetLOU(lei as int64, buf); Print("LOU: "); Print(buf as pchar); Print("\n"); return 0; } rc=3 LOU: 5299 Alle Funktionen dieser Unit nehmen die Eingabe als ''int64'' — der Cast ''%%wert as int64%%'' ist nötig, weil die ''pchar''-Bereinigung der Standardbibliothek ([[https://github.com/SEOLizer/LyX-Compiler/issues/1613|#1613]]) ''units/validate'' noch nicht erreicht hat. Zeichenketten werden **nicht zurückgegeben**: Wer ein Ergebnis braucht, übergibt einen eigenen Puffer als ''out_buf''; der Rückgabewert ist ein Fehlercode (''0'' = in Ordnung). > **''LEIValidate'' weist jede gültige LEI ab** ([[https://github.com/SEOLizer/LyX-Compiler/issues/1689|#1689]]) — daher oben ''rc=3'' (''LEI_ERR_CHECK''). Die Mod-97-Rechnung stellt die Zeichen um, als stünden die Prüfziffern an Position 5 und 6; bei einer LEI stehen sie an den letzten beiden Stellen. ''LEIGetLOU'' ist nicht betroffen. ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''LEIValidate(lei: int64): int64'' | pub | LEI prüfen; ''LEI_OK'' oder Fehlercode (siehe Kasten) | | ''LEIGetLOU(lei: int64, out_buf: int64): int64'' | pub | LOU-Präfix (4 Stellen) nach ''out_buf'' | Nicht vorhanden: ''LEICalculateCheck'', ''LEIGetEntity'' und ''LEINormalize''. Letzte Aktualisierung: 2026-08-19 — Seite gegen die echten Signaturen berichtigt; Beispiel mit ''lyxc 1.1.3I'' übersetzt und ausgeführt. Fehlerhafte Prüfsumme als #1689 gemeldet.