home *** CD-ROM | disk | FTP | other *** search
- |##########|
- |#MAGIC #|CLABLMBB
- |#PROJECT #|""
- |#PATHS #|"StdProject"
- |#FLAGS #|-x---x--x---xxx-----------------
- |#USERSW #|--------------------------------
- |#USERMASK#|--------------------------------
- |#SWITCHES#|x----x----------
- |##########|
- |==============================================================================|
- | Modul : Conversions |
- | Autor : Thomas Pfrengle |
- | Datum : 29.9.1991 |
- | Verwendung : Umwandlung von Zeichenketten in Zahlen und umgekehrt. |
- | Änderungen : - |
- |==============================================================================|
- DEFINITION MODULE Conversions;
- FROM System IMPORT Regs;
- FROM Exceptions IMPORT RangeViolation;
-
- EXCEPTION
- | RangeViolation : Zahl paßt nicht in den String, in das angegebene Feld;
- | Eingegebene Zahl, ist zu groß für das gewünschte
- | Zahlenformat oder paßt vom Vorzeichen nicht.
- | NoPointInMask : In einer Formatmaske muß ein Dezimalpunkt enthalten sein,
- | der dem Zeichen entspricht, das als Parameter point übergeben
- | wurde.
- NoPointInMask : "No point in mask";
- |
- | IllegalChar : In dem übergebenen String befinden sich nicht
- | konvertierbare Zeichen
- IllegalChar : "Illegal character in string";
- |
- | Prozeduren: ValueToString
- |
- | RealToString : Wandelt eine Realzahl in eine Zeichenkette.
- |
- | RealToExpString : Wie RealToString jedoch in Exponentialdarstellung
- |
- | RealToMaskedString : Wandelt eine Longrealzahl in eine maskierte Realzahl
- |
- | IntToString : Wandelt eine Integerzahl in eine Zeichenkette
- |
- | IntToHexString : Wandelt eine Integerzahl in eine Zeichenkette in
- | Hexadezimaldarstellung, mit Vorzeichen, nicht im
- | 2er-Komplement
- | IntToBinString : Wandelt eine Integerzahl in eine Zeichenkette, in
- | Binärdarstellung,mit Vorzeichen, nicht im
- | 2er-Komplement.
- | CardToString : Wandelt eine Cardinalzahl in eine Zeichenkette
- |
- | CardToHexString : Wie CardToString, jedoch als Hexzahl.
- |
- | CardToBinString : Wie CardToHexString, jedoch als Binärzahl.
- | Übergibt man bei CardToBinString,CardToFexString, bei
- | ausgeschaltetem RangeCheck eine negative Zahl, wird
- | diese im 2er-Komplement dargestellt.
- | StringToValue :
- |
- | StringToReal : Wandelt einen String in eine Realzahl, auch
- | Strings in Exponentialdarstellung.
- | StringToInt : Wandelt einen String in eine Longintzahl
- |
- | HexStringToInt : Wandelt einen HexString in eine Longintzahl,
- | keine 2er-Komplementdarstellung
- | BinStringToInt : Wandelt einen BinärString in eine Longintzahl
- | keine 2er-Komplementdarstellung
- | StringToCard : Wandelt einen String in eine Longcardzahl
- |
- | HexStringToCard : Wandelt einen Hex-String in eine Longcardzahl
- |
- | BinStringToCard : Wandelt einen Binär-String in eine Longcardzahl
-
- |
- | Parameter : val <- Realzahl, die umgewandelt werden soll
- | field <- Anzahl der Stellen, die umgewandelt werden sollen
- | digits <- Anzahl der gewünschten Nachkommastellen
- | fillChar <- Füllzeichen mit dem field aufgefüllt werden soll
- | point <- Zeichen, das für den Dezimalpunkt verwendet werden soll
- | -> String mit der umgewandelten Zahl
- | tested
- $$OwnHeap:=TRUE
- PROCEDURE RealToString(val : LONGREAL;
- field,
- digits : CARDINAL;
- fillChar : CHAR :=" ";
- point : CHAR :="."):STRING;
-
- |
- | Parameter : val <- Realzahl, die umgewandelt werden soll
- | digits <- Anzahl der gewünschten Nachkommastellen
- | expDigits <- Anzahl der Exponantialstellen
- | point <- Zeichen, das für den Dezimalpunkt verwemndet
- | werden soll.
- | -> String mit der umgewandelten Zahl
- | tested
- $$OwnHeap:=TRUE
- PROCEDURE RealToExpString(val : LONGREAL;
- digits : CARDINAL:=6;
- expDigits : CARDINAL:=3;
- point : CHAR:="."):STRING;
-
- |
- | Parameter : val <- Zahl die konvertiert werden soll
- | mask <- Maskierungsstring
- | point <- Dezimalpunkt
- | -> String
- | Bemerkung :
- | mask : "ccccc+###c###c###.####
- | "ccccc#.#########E****"
- | c : character | +/- : sign | # : digit | E**** : exponent
- | Die Zahl der Sternchen hinter `E` gibt die Stellenzahl des
- | Exponenten inklusive Vorzeichen an. Steht ein `+` als sign, wird
- | das Vorzeichen auch bei positiven Zahlen ausgegeben.
- | Näheres zur Maskierung siehe Handbuch
- | tested
- $$OwnHeap:=TRUE
- PROCEDURE RealToMaskedString( val : LONGREAL;
- REF mask : STRING;
- fillChar : CHAR := " ";
- point : CHAR := "."):STRING;
-
- |
- | Parameter : val <- Integerzahl, die umgewandelt werden soll
- | field <- Anzahl der Stellen, die umgewandelt werden sollen
- | fillChar <- Füllzeichen mit dem field aufgefüllt werden soll
- | -> String mit der umgewandelten Zahl
- | tested
- $$OwnHeap:=TRUE
- PROCEDURE IntToString(val IN D2 : LONGINT;
- field IN D3 : INTEGER:=0;
- fillChar : CHAR:=" "): STRING;
-
- |
- | Parameter : val <- Integerzahl, die umgewandelt werden soll
- | field <- Anzahl der Stellen, die umgewandelt werden sollen
- | fillChar <- Füllzeichen mit dem field aufgefüllt werden soll
- | -> String mit der umgewandelten Zahl
- |
- $$OwnHeap:=TRUE
- PROCEDURE IntToHexString(val IN D2 : LONGINT;
- field IN D3 : INTEGER:=0;
- fillChar : CHAR:=" ";
- dollar : BOOLEAN:=FALSE):STRING;
-
- |
- | Parameter : val <- Integerzahl, die umgewandelt werden soll
- | field <- Anzahl der Stellen, die umgewandelt werden sollen
- | fillChar <- Füllzeichen mit dem field aufgefüllt werden soll
- | -> String mit der umgewandelten Zahl
- | tested
- $$OwnHeap:=TRUE
- PROCEDURE IntToBinString(val IN D2 : LONGINT;
- field IN D3 : INTEGER:=0;
- fillChar : CHAR:=" ";
- sign : BOOLEAN:=FALSE):STRING;
- |
- | Parameter : Wie IntToString, jdeoch für Cardinal
- | tested
- $$OwnHeap:=TRUE
- PROCEDURE CardToString(val IN D2 : LONGCARD;
- field IN D3 : INTEGER:=0;
- fillChar : CHAR:=" "): STRING;
-
- |
- | Parameter : val <- Cardinalzahl, die umgewandelt werden soll
- | field <- Anzahl der Stellen, die umgewandelt werden sollen
- | fillChar <- Füllzeichen mit dem field aufgefüllt werden soll
- | dollar <- Gibt an, ob ein `$` vor die Zahl gesetzt werden soll
- | -> String mit der umgewandelten Zahl
- | tested
- $$OwnHeap:=TRUE
- PROCEDURE CardToHexString(val IN D2 : LONGCARD;
- field IN D3 : INTEGER:=0;
- fillChar IN D4 : CHAR:=" ";
- dollar IN D5 : BOOLEAN := FALSE):STRING;
-
- |
- | Parameter : val <- Cardinalzahl, die umgewandelt werden soll
- | field <- Anzahl der Stellen, die umgewandelt werden sollen
- | fillChar <- Füllzeichen mit dem field aufgefüllt werden soll
- | sign <- Gibt an, ob ein `%` vor die Zahl gesetzt werden soll
- | -> String mit der umgewandelten Zahl
- | tested
- $$OwnHeap:=TRUE
- PROCEDURE CardToBinString(val IN D2 : LONGCARD;
- field IN D3 : INTEGER:=0;
- fillChar IN D4 : CHAR:=" ";
- sign IN D5 : BOOLEAN := FALSE):STRING;
-
- |
- | Parameter : str <- String der umgewandelt werden soll
- | point <- Zeichen, das als Dezimalpunkt interpretiert
- | werden soll
- | -> Longrealzahl
- |tested
- PROCEDURE StringToReal(REF str IN A0 : STRING;
- point : CHAR:="."):LONGREAL;
-
- |
- | Parameter : str <- String der umgewandelt werden soll
- | -> Longintzahl
- | tested
- PROCEDURE StringToInt(REF str IN A0 : STRING):LONGINT;
-
- |
- | Parameter : str <- String der umgewandelt werden soll
- | -> Longintzahl
- | tested
- PROCEDURE HexStringToInt(REF str IN A0 : STRING):LONGINT;
-
- |
- | Parameter : str <- String der umgewandelt werden soll
- | -> Longintzahl
- | tested
- PROCEDURE BinStringToInt(REF str IN A0 : STRING):LONGINT;
- |
- | Parameter : str <- String der umgewandelt werden soll
- | -> Longcardzahl
- | tested
- PROCEDURE StringToCard(REF str IN A0 : STRING):LONGCARD;
-
- |
- | Parameter : str <- String der umgewandelt werden soll
- | -> Longcardzahl
- | tested
- PROCEDURE HexStringToCard(REF str IN A0 : STRING):LONGCARD;
-
- |
- | Parameter : str <- String der umgewandelt werden soll
- | -> Longcardzahl
- | tested
- PROCEDURE BinStringToCard(REF str IN A0 : STRING):LONGCARD;
-
- GROUP
- All = RealToString,RealToExpString,RealToMaskedString,IntToString,
- CardToHexString,StringToReal,StringToInt,HexStringToCard,
- IntToHexString,IntToBinString,CardToString,CardToHexString,
- CardToBinString,HexStringToInt,BinStringToInt,StringToCard,
- BinStringToCard,NoPointInMask;
-
-
- END Conversions.
-
-