====== std.validate.bic ======
BIC (Bank Identifier Code) / SWIFT-Code identifiziert Banken im internationalen Zahlungsverkehr (ISO 9362). Die Validierung ist strukturell: 4-Buchstaben-Bankencode + 2-Buchstaben-Ländercode + 2-stelliger Ortsschlüssel + optionaler 3-stelliger Filialcode. Prüfziffern gibt es nicht — gültige Codes sind in der SWIFT-Datenbank registriert.
→ [[lyx_-_programmiersprache:units:validate|std.validate]] · [[lyx_-_programmiersprache:units:validate:iban|std.validate.iban]]
----
===== Konstanten =====
^ Name ^ Wert ^ Bedeutung ^
| ''BIC_OK'' | ''0'' | Strukturell gültig |
| ''BIC_ERR_INVALID_LENGTH'' | ''1'' | Länge muss 8 oder 11 sein |
| ''BIC_ERR_INVALID_CHAR'' | ''2'' | Ungültiges Zeichen |
| ''BIC_ERR_INVALID_COUNTRY'' | ''3'' | Ungültiges Länderkürzel |
| ''BIC_ERR_INVALID_BANKCODE'' | ''4'' | Bankcode enthält keine Buchstaben |
----
===== Verwendung =====
unit main;
import std.io;
import std.alloc;
import std.validate.bic;
fn main(): int64 {
var bic: pchar := "DEUTDEDB"c; // Deutsche Bank Frankfurt
var result: int64 := BICValidate(bic);
if (result == BIC_OK) {
var buf: int64 := alloc(16);
BICGetBankCode(bic, buf); PrintLn(buf as pchar); // DEUT
BICGetCountry(bic, buf); PrintLn(buf as pchar); // DE
}
var norm: int64 := alloc(16);
BICNormalize("deut de db"c, norm);
PrintLn(norm as pchar); // DEUTDEDB
return 0;
}
DEUT
DE
DEUTDEDB
> **Die ''BICGet*''-Funktionen liefern keinen Text, sondern einen Status** — das Ergebnis landet im **Zielpuffer**, den der Aufrufer stellt. Das ist dieselbe Konvention wie bei ''std.string'' (→ [[lyx_-_programmiersprache:units:string|std.string]]): Zielpuffer als Argument, Rückgabewert ist die Statusmeldung.
>
> Ältere Fassungen dieser Seite verschachtelten die Aufrufe (''%%log_info(BICGetBankCode(bic))%%'') — das übergibt einen ''int64'' dort, wo ein ''pchar'' erwartet wird. Ebenfalls entfallen: ''BICGetLocation'' und ''BICGetBranch'' existieren nicht; die vorhandenen Funktionen sind ''BICNormalize'', ''BICValidate'', ''BICGetBankCode'', ''BICGetCountry'' und ''BICIsHeadOffice''.
----
===== Funktionen =====
^ Signatur ^ Sichtbarkeit ^ Beschreibung ^
| ''BICValidate(bic: pchar): int64'' | pub | BIC/SWIFT-Code strukturell validieren |
| ''BICNormalize(bic: pchar): pchar'' | pub | BIC normalisieren (Leerzeichen entfernen, Großbuchstaben) |
| ''BICGetBankCode(bic: pchar): pchar'' | pub | 4-stelligen Bankcode extrahieren |
| ''BICGetCountry(bic: pchar): pchar'' | pub | 2-stelliges Länderkürzel extrahieren |
| ''BICGetLocation(bic: pchar): pchar'' | pub | 2-stelligen Ortsschlüssel extrahieren |
| ''BICGetBranch(bic: pchar): pchar'' | pub | 3-stelligen Filialcode extrahieren (leer bei 8-stelligem BIC) |
| ''BICIs8Digit(bic: pchar): bool'' | pub | Gibt true zurück wenn BIC 8-stellig ist (kein Filialcode) |
Letzte Aktualisierung: 2026-05-23