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.
→ std.validate · std.validate.iban · 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 (#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).
LEIValidateweist jede gültige LEI ab (#1689) — daher obenrc=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.LEIGetLOUist 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.
