std.validate.isin
ISIN (International Securities Identification Number, ISO 6166) identifiziert Wertpapiere weltweit eindeutig. Die Prüfung erfolgt über den Luhn-Algorithmus auf einer erweiterten Ziffernkette, bei der Buchstaben als zweistellige Zahlen kodiert werden (A=10, B=11 …). Das Format ist: 2-Buchstaben-Länderkürzel + 9-stelliger nationaler Code + 1 Prüfziffer.
→ std.validate · std.validate.luhn · std.validate.lei
Konstanten
| Name | Wert | Bedeutung |
|---|---|---|
ISIN_OK | 0 | Gültig |
ISIN_ERR_INVALID_LENGTH | 1 | Länge ≠ 12 |
ISIN_ERR_INVALID_CHAR | 2 | Ungültiges Zeichen |
ISIN_ERR_INVALID_COUNTRY | 3 | Unbekanntes Länderkürzel |
ISIN_ERR_INVALID_CHECK | 4 | Falsche Prüfziffer |
Verwendung
import std.io;
import std.alloc;
import std.validate.isin;
fn main(): int64 {
var isin: pchar := "DE0005140008"; // Deutsche Bank
var buf: int64 := alloc(32);
Print("rc="); PrintLn(IntToStr(ISINValidate(isin as int64))); // 0 = ISIN_OK
ISINGetCountry(isin as int64, buf);
Print("Land: "); Print(buf as pchar); Print("\n");
ISINNormalize("de0005140008" as int64, buf);
Print("normalisiert: "); Print(buf as pchar); Print("\n");
Print("Pruefziffer: "); PrintLn(IntToStr(ISINCheckDigit("DE000514000" as int64)));
return 0;
}
rc=0
Land: DE
normalisiert: DE0005140008
Pruefziffer: 8
Die 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: Das Ergebnis landet in einem selbst übergebenen Puffer (out_buf), der Rückgabewert ist ein Fehlercode (0 = in Ordnung).
Funktionen
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
ISINValidate(isin: int64): int64 | pub | ISIN prüfen; ISIN_OK oder Fehlercode |
ISINCheckDigit(isin: int64): int64 | pub | Prüfziffer für den 11-stelligen Stamm |
ISINGetCountry(isin: int64, out_buf: int64): int64 | pub | Länderkürzel nach out_buf |
ISINNormalize(isin: int64, out_buf: int64): int64 | pub | Normalisierte ISIN nach out_buf |
Nicht vorhanden: ISINGetNasin und ISINFormat.
Letzte Aktualisierung: 2026-08-19 — Seite gegen die echten Signaturen berichtigt (int64-Eingaben, out_buf statt Rückgabe); Beispiel mit lyxc 1.1.3I übersetzt und ausgeführt.
