====== 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.