std.validate.orcid
ORCID iD (Open Researcher and Contributor ID) identifiziert Wissenschaftler und Autoren weltweit eindeutig. Format: 4×4 Ziffern mit Bindestrichen (0000-0002-1825-0097). Die Prüfziffer an der letzten Stelle wird nach ISO/IEC 7064 MOD 11-2 berechnet (mögliche Werte: 0–9 und X für 10).
Konstanten
| Name | Wert | Bedeutung |
|---|---|---|
ORCID_OK | 0 | Gültig |
ORCID_ERR_INVALID_LENGTH | 1 | Länge ≠ 16 (ohne Bindestriche) |
ORCID_ERR_INVALID_CHAR | 2 | Ungültige Zeichen |
ORCID_ERR_INVALID_CHECK | 3 | Falsche MOD-11-2-Prüfziffer |
Verwendung
import std.io;
import std.alloc;
import std.validate.orcid;
fn main(): int64 {
var orcid: pchar := "0000-0002-1825-0097";
var buf: int64 := alloc(32);
Print("rc="); PrintLn(IntToStr(ORCIDValidate(orcid as int64))); // 0 = ORCID_OK
ORCIDNormalize(orcid as int64, buf);
Print("normalisiert: "); Print(buf as pchar); Print("\n");
// Rueckgabe ist der Zeichencode: 55 = '7', 88 = 'X'
Print("Pruefzeichen: "); PrintLn(IntToStr(ORCIDCheckDigit("0000-0002-1825-009" as int64)));
return 0;
}
rc=0
normalisiert: 0000000218250097
Pruefzeichen: 55
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 |
|---|---|---|
ORCIDValidate(orcid: int64): int64 | pub | ORCID iD prüfen; ORCID_OK oder Fehlercode |
ORCIDNormalize(orcid: int64, out_buf: int64): int64 | pub | Bindestriche entfernen, Ergebnis nach out_buf |
ORCIDCheckDigit(orcid: int64): int64 | pub | MOD-11-2-Prüfzeichen als Zeichencode (55 = 7, 88 = X) |
Nicht vorhanden: ORCIDFormat.
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.
