home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Global Amiga Experience
/
globalamigaexperience.iso
/
compressed
/
development
/
clusterdemo.dms
/
clusterdemo.adf
/
Modules.lha
/
modules
/
txt
/
Conversions.def
< prev
next >
Wrap
Text File
|
1994-05-25
|
10KB
|
245 lines
|##########|
|#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.