====== 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=0 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'' arbeitet** ([[https://github.com/SEOLizer/LyX-Compiler/issues/1689|#1689]] behoben, mit ''lyxc 1.1.11B'' nachgemessen): eine gültige LEI liefert ''0'', eine an der letzten Stelle verfälschte ''3'' (''LEI_ERR_CHECKSUM''). Die Mod-97-Rechnung stimmt wieder. ---- ===== 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. Letzte Aktualisierung: 2026-08-27 — ''LEIValidate'' gegen ''lyxc 1.1.11B'' nachgemessen: #1689 ist behoben, die Beispielausgabe steht jetzt auf ''rc=0'' (vorher ''rc=3''). Codebeispiele geprüft: gegen **lyxc 1.2.5C** übersetzt (Prüflauf 2026-09-08 über die gesamte Doku: 574 Vollprogramme, 0 echte Fehler; zusätzlich 5159 Aufrufe gegen die ''pub fn''-Signaturen in ''aurum/std'' gehalten, 0 Abweichungen).