Beschreibung | Einen Speicherblock von einem Zeichensatz in einen anderen
Zeichensatz wandeln |
Aufruf C | char *src, *dest;
long src_len, dest_len; short src_nr, dest_nr; (kt->BlockXUtf2XUtf)(dest, &dest_len, dest_nr, src, src_len, src_nr); |
Aufruf Pascal | src, dest: PChar; src_len, dest_len : LongInt;
src_nr, dest_nr : Integer; kt^.BlockXUtf2XUtf(nil, nil, 0, 0, 0, dest, dest_len, dest_nr, src, src_len, src_nr); |
Aufruf GFA | kt_func% = {kt_struc%+132}
~C:kt_func%(L:dest%, dest_len%, dest_nr&, L:src%, L:src_len&, src_nr&) |
Die Funktion BlockXUtf2XUtf wandelt einen Speicherblock (Adresse 'src', Länge 'src_len') von einem Zeichensatz in einen anderen um. Die Zeichensatznummern können für 'src_len' von GetImpMinNr()..GetImpMaxNr() und für 'dest_nr' von GetExpMinNr()..GetExpMaxNr() reichen und umfassen damit sowohl die wirklichen Zeichensätze als auch die Unicode-Codierungen.
Falls beide Nummern für 8-Bit-Zeichensätze stehen — d.h. nicht negativ sind —, wird ohne Umweg über Unicode über den Atari-Zeichensatz mittels CharX2Atari und CharAtari2X gewandelt, andernfalls wird auf BlockXUtf2U2XUtf zurückgegriffen.
Hinweis: Falls in 'dest_len' nicht NULL bzw. NIL übergeben wird, wird dort die Anzahl der benötigten Zeichen eingetragen, die der Ziel-String 'dest' beinhaltet.
Hinweis: Wenn als Ziel-String 'dest' NULL bzw. NIL übergeben wird, wird nur ermittelt, wie viele Zeichen der Ziel-String enthalten würde.
Tip: Mit einem Aufruf von 'dest' gleich NULL bzw. NIL kann ermittelt werden, wieviel Speicher benötigt wird. Nach dem Allozieren des Speichers wird dann die Funktion zur Konversion aufgerufen.
Die Funktion BlockXUtf2XUtf ist vorhanden, wenn size>=136 ist.