Nächste Seite: Coroutines Aufwärts: Bibliotheksmoduln Vorherige Seite: CommoditiesSupport

# Conversions

Das Modul `Conversions` stellt die beiden wichtigsten Prozeduren zur Umwandlung von ganzen Zahlen aus der lesbaren in die interne Darstellung und umgekehrt zur Verfügung. Dabei ist es möglich, sowohl vorzeichenbehaftete sowie vorzeichenlose Grössen umzuwandeln.

Die Prozedur `StrToVal` wandelt von der lesbaren zur internen Darstellung um. Die Zeichenkette `str` enthält eine Zahl zur Basis `base`. Diese Zahlenbasis kann jeden Wert zwischen 2 und 16 annehmen, die verwendeten Zeichen müssen allerdings innerhalb des entsprechend gültigen Bereichs `[0..base-1]` sein. Zahlen in Oktaldarstellung erlauben so Zeichen zwischen `'0'` und `'7'`, solche in Hexadezimaldarstellung die Zeichen `'0'` bis `'9'` und `'A'` bis `'F'`. Die Zeichenkette darf insbesondere auch keine Leerzeichen enthalten, das Nullzeichen (`0C`) als Abschlusszeichen ist selbstverständlich erlaubt. Das Resultat wird im `LONGINT`-Parameter `l` abgelegt. Ein Fehler -- angezeigt durch den Parameter `err` -- kann durch folgende Ereignisse verursacht sein:

- Die Zahlenbasis ist ausserhalb des erlaubten Bereichs von 2 und 16.
- Die Eingabe-Zeichenkette enthält Zeichen, die nicht zur angegebenen Basis passen.
- Der resultierende Wert kann nicht in einem `LONGINT` gespeichert werden.

Ist der Resultatswert `l` negativ und hat `signed` gleichzeitig den Wert `FALSE`, so wurde eine Zahl übergeben, die kein Minuszeichen enthält, deren Wert aber nicht in einer `LONGINT`-Zahl abgespeichert werden kann. In diesem Fall ist die Zahl `l` in einem `LONGCARD` abzuspeichern. Entweder wird ein Varianten-Verbund (```CASE-RECORD```) übergeben, oder man muss sich mit einer `CAST`-Anweisung des Moduls `SYSTEM` behelfen.

Die umgekehrte Umwandlung wird durch die Prozedur `ValToStr` durchgeführt. Die im `LONGINT`-Parameter `l` abgelegte Zahl wird in die Zeichenkette `str` umgewandelt und formatiert. Die Zahl wird in einem Feld der Grösse `width` (Absolutbetrag) positioniert. Das Vorzeichen von `width` bestimmt die Anordnung der Zahl im Feld. Bei einem positiven Wert von `width` wird die Zahl im Feld rechtsbündig, mit führenden Füllzeichen `fillChar`, sonst linksbündig mit nachfolgenden Füllzeichen, angeordnet.

Für das Vorzeichen von `l` und dem Wert von `signed` gilt die gleiche Konvention wie bei `StrToVal`. Zahlen und Zeichenketten, die ausschliesslich mit `Conversions` bearbeitet werden, benötigen daher keine weitere Bearbeitung.

Nächste Seite: Coroutines Aufwärts: Bibliotheksmoduln Vorherige Seite: CommoditiesSupport