std.validate.isrc
ISRC (International Standard Recording Code, ISO 3901) identifiziert einzelne Tonaufnahmen und Musikvideos weltweit eindeutig. Das Format ist strukturell (keine Prüfziffer): CC-XXX-YY-NNNNN — 2-Buchstaben-Ländercode + 3-Buchstaben-Registranten + 2-stelliges Jahr + 5-stellige Sequenz. Gesamt 12 alphanumerische Zeichen.
Konstanten
| Name | Wert | Bedeutung |
|---|---|---|
ISRC_OK | 0 | Strukturell gültig |
ISRC_ERR_INVALID_LENGTH | 1 | Länge ≠ 12 (ohne Bindestriche) |
ISRC_ERR_INVALID_CHAR | 2 | Ungültige Zeichen |
ISRC_ERR_INVALID_COUNTRY | 3 | Ungültiges Länderkürzel |
Verwendung
import std.io;
import std.alloc;
import std.validate.isrc;
fn main(): int64 {
var isrc: pchar := "USRC17607839";
var buf: int64 := alloc(32);
Print("rc="); PrintLn(IntToStr(ISRCValidate(isrc as int64))); // 0 = ISRC_OK
ISRCGetCountry(isrc as int64, buf);
Print("Land: "); Print(buf as pchar); Print("\n");
// Jahr als Zahl, nicht als Zeichenkette
Print("Jahr: "); PrintLn(IntToStr(ISRCGetYear(isrc as int64)));
ISRCNormalize("US-RC1-76-07839" as int64, buf);
Print("normalisiert: "); Print(buf as pchar); Print("\n");
return 0;
}
rc=0
Land: US
Jahr: 76
normalisiert: USRC17607839
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 |
|---|---|---|
ISRCValidate(isrc: int64): int64 | pub | ISRC prüfen; ISRC_OK oder Fehlercode |
ISRCNormalize(isrc: int64, out_buf: int64): int64 | pub | Bindestriche entfernen, Ergebnis nach out_buf |
ISRCGetCountry(isrc: int64, out_buf: int64): int64 | pub | Ländercode nach out_buf |
ISRCGetYear(isrc: int64): int64 | pub | Referenzjahr als Zahl (76 für 1976) |
Nicht vorhanden: ISRCFormat, ISRCGetRegistrant und ISRCGetSequence.
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.
