====== std.validate.ch_ahv ======
AHV-Nummer (Alters- und Hinterlassenenversicherung) — Schweizer Sozialversicherungsnummer. Die seit 2009 gültige 13-stellige Nummer folgt dem EAN-13-Profil mit dem fixen Präfix ''756'' (Ländercode Schweiz). Die Prüfziffer wird identisch zur EAN-13-Formel (Mod-10, Gewichte 1 und 3) berechnet.
→ [[lyx_-_programmiersprache:units:validate|std.validate]] · [[lyx_-_programmiersprache:units:validate:ean|std.validate.ean]]
----
===== Konstanten =====
^ Name ^ Wert ^ Bedeutung ^
| ''CH_AHV_OK'' | ''0'' | Gültig |
| ''CH_AHV_ERR_INVALID_LENGTH'' | ''1'' | Länge ≠ 13 (ohne Punkte) |
| ''CH_AHV_ERR_INVALID_CHAR'' | ''2'' | Ungültige Zeichen |
| ''CH_AHV_ERR_INVALID_PREFIX'' | ''3'' | Kein 756-Präfix |
| ''CH_AHV_ERR_INVALID_CHECK'' | ''4'' | Falsche EAN-13-Prüfziffer |
----
===== Verwendung =====
import std.io;
import std.alloc;
import std.validate.ch_ahv;
fn main(): int64 {
var ahv: pchar := "756.1234.5678.97";
var buf: int64 := alloc(24);
Print("rc="); PrintLn(IntToStr(CHAHVValidate(ahv as int64))); // 0 = CH_AHV_OK
CHAHVNormalize(ahv as int64, buf);
Print("normalisiert: "); Print(buf as pchar); Print("\n");
Print("Pruefziffer: "); PrintLn(IntToStr(CHAHVCheckDigit("756123456789" as int64)));
return 0;
}
rc=0
normalisiert: 7561234567897
Pruefziffer: 7
Die Funktionen dieser Unit geben **keine Zeichenketten zurück**: Das Ergebnis landet in einem selbst übergebenen Puffer (''out_buf''), der Rückgabewert ist ein Fehlercode (''0'' = in Ordnung). Die Eingabe wird als ''int64'' erwartet — der Cast ''%%wert as int64%%'' ist nötig, weil die ''pchar''-Bereinigung ([[https://github.com/SEOLizer/LyX-Compiler/issues/1613|#1613]]) ''units/validate'' noch nicht erreicht hat.
----
===== Funktionen =====
^ Signatur ^ Sichtbarkeit ^ Beschreibung ^
| ''CHAHVValidate(ahv: int64): int64'' | pub | AHV-Nummer prüfen; ''CH_AHV_OK'' oder Fehlercode |
| ''CHAHVNormalize(ahv: int64, out_buf: int64): int64'' | pub | Punkte entfernen, Ergebnis nach ''out_buf'' |
| ''CHAHVCheckDigit(ahv: int64): int64'' | pub | EAN-13-Prüfziffer für den 12-stelligen Stamm |
Nicht vorhanden: ''CHAHVFormat''.
Letzte Aktualisierung: 2026-08-19 — Seite gegen die echten Signaturen berichtigt; Beispiel mit ''lyxc 1.1.3I'' übersetzt und ausgeführt.