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 >
Text File  |  1994-05-25  |  10KB  |  245 lines

  1. |##########|
  2. |#MAGIC   #|CLABLMBB
  3. |#PROJECT #|""
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|-x---x--x---xxx-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|x----x----------
  9. |##########|
  10. |==============================================================================|
  11. | Modul      : Conversions                                                     |
  12. | Autor      : Thomas Pfrengle                                                 |
  13. | Datum      : 29.9.1991                                                       |
  14. | Verwendung : Umwandlung von Zeichenketten in Zahlen und umgekehrt.           |
  15. | Änderungen : -                                                               |
  16. |==============================================================================|
  17. DEFINITION MODULE Conversions;
  18. FROM System       IMPORT Regs;
  19. FROM Exceptions   IMPORT RangeViolation;
  20.  
  21. EXCEPTION
  22.   | RangeViolation   : Zahl paßt nicht in den String, in das angegebene Feld;
  23.   |                    Eingegebene Zahl, ist zu groß für das gewünschte
  24.   |                    Zahlenformat oder paßt vom Vorzeichen nicht.
  25.   | NoPointInMask    : In einer Formatmaske muß ein Dezimalpunkt enthalten sein,
  26.   |                    der dem Zeichen entspricht, das als Parameter point übergeben
  27.   |                    wurde.
  28.   NoPointInMask    : "No point in mask";
  29.   |
  30.   | IllegalChar      : In dem übergebenen String befinden sich nicht
  31.   |                    konvertierbare Zeichen
  32.   IllegalChar      : "Illegal character in string";
  33.   |
  34.   | Prozeduren: ValueToString
  35.   |
  36.   | RealToString        : Wandelt eine Realzahl in eine Zeichenkette.
  37.   |
  38.   | RealToExpString     : Wie RealToString jedoch in Exponentialdarstellung
  39.   |
  40.   | RealToMaskedString  : Wandelt eine  Longrealzahl in eine maskierte Realzahl
  41.   |
  42.   | IntToString         : Wandelt eine  Integerzahl in eine Zeichenkette
  43.   |
  44.   | IntToHexString      : Wandelt eine  Integerzahl in eine Zeichenkette in
  45.   |                       Hexadezimaldarstellung, mit Vorzeichen, nicht im
  46.   |                       2er-Komplement
  47.   | IntToBinString      : Wandelt eine  Integerzahl in eine Zeichenkette, in
  48.   |                       Binärdarstellung,mit Vorzeichen, nicht im
  49.   |                       2er-Komplement.
  50.   | CardToString        : Wandelt eine  Cardinalzahl in eine Zeichenkette
  51.   |
  52.   | CardToHexString     : Wie CardToString, jedoch als Hexzahl.
  53.   |
  54.   | CardToBinString     : Wie CardToHexString, jedoch als Binärzahl.
  55.   |                       Übergibt man bei CardToBinString,CardToFexString, bei
  56.   |                       ausgeschaltetem RangeCheck eine negative Zahl, wird
  57.   |                       diese im 2er-Komplement dargestellt.
  58.   | StringToValue :
  59.   |
  60.   | StringToReal        : Wandelt einen String in eine Realzahl, auch
  61.   |                       Strings in Exponentialdarstellung.
  62.   | StringToInt         : Wandelt einen String in eine Longintzahl
  63.   |
  64.   | HexStringToInt      : Wandelt einen HexString in eine Longintzahl,
  65.   |                       keine 2er-Komplementdarstellung
  66.   | BinStringToInt      : Wandelt einen BinärString in eine Longintzahl
  67.   |                       keine 2er-Komplementdarstellung
  68.   | StringToCard        : Wandelt einen String in eine Longcardzahl
  69.   |
  70.   | HexStringToCard     : Wandelt einen Hex-String in eine Longcardzahl
  71.   |
  72.   | BinStringToCard     : Wandelt einen Binär-String in eine Longcardzahl
  73.  
  74. |
  75. | Parameter : val      <- Realzahl, die umgewandelt werden soll
  76. |             field    <- Anzahl der Stellen, die umgewandelt werden sollen
  77. |             digits   <- Anzahl der gewünschten Nachkommastellen
  78. |             fillChar <- Füllzeichen mit dem field aufgefüllt werden soll
  79. |             point    <- Zeichen, das für den Dezimalpunkt verwendet werden soll
  80. |                      -> String mit der umgewandelten Zahl
  81. | tested
  82. $$OwnHeap:=TRUE
  83. PROCEDURE RealToString(val      : LONGREAL;
  84.                        field,
  85.                        digits   : CARDINAL;
  86.                        fillChar : CHAR :=" ";
  87.                        point    : CHAR :="."):STRING;
  88.  
  89. |
  90. | Parameter : val       <- Realzahl, die umgewandelt werden soll
  91. |             digits    <- Anzahl der gewünschten Nachkommastellen
  92. |             expDigits <- Anzahl der Exponantialstellen
  93. |             point     <- Zeichen, das für den Dezimalpunkt verwemndet
  94. |                          werden soll.
  95. |                      -> String mit der umgewandelten Zahl
  96. |  tested
  97. $$OwnHeap:=TRUE
  98. PROCEDURE RealToExpString(val       : LONGREAL;
  99.                           digits    : CARDINAL:=6;
  100.                           expDigits : CARDINAL:=3;
  101.                           point     : CHAR:="."):STRING;
  102.  
  103. |
  104. | Parameter : val      <- Zahl die konvertiert werden soll
  105. |             mask     <- Maskierungsstring
  106. |             point    <- Dezimalpunkt
  107. |                      -> String
  108. | Bemerkung :
  109. |             mask : "ccccc+###c###c###.####
  110. |             "ccccc#.#########E****"
  111. |             c : character | +/- : sign | # : digit | E**** : exponent
  112. |             Die Zahl der Sternchen hinter `E` gibt die Stellenzahl des
  113. |             Exponenten inklusive Vorzeichen an. Steht ein `+` als sign, wird
  114. |             das Vorzeichen auch bei positiven Zahlen ausgegeben.
  115. |             Näheres zur Maskierung siehe Handbuch
  116. | tested
  117. $$OwnHeap:=TRUE
  118. PROCEDURE RealToMaskedString(    val      : LONGREAL;
  119.                              REF mask     : STRING;
  120.                                  fillChar : CHAR := " ";
  121.                                  point    : CHAR := "."):STRING;
  122.  
  123. |
  124. | Parameter : val      <- Integerzahl, die umgewandelt werden soll
  125. |             field    <- Anzahl der Stellen, die umgewandelt werden sollen
  126. |             fillChar <- Füllzeichen mit dem field aufgefüllt werden soll
  127. |                      -> String mit der umgewandelten Zahl
  128. | tested
  129. $$OwnHeap:=TRUE
  130. PROCEDURE IntToString(val      IN D2 : LONGINT;
  131.                       field    IN D3 : INTEGER:=0;
  132.                       fillChar       : CHAR:=" "): STRING;
  133.  
  134. |
  135. | Parameter : val      <- Integerzahl, die umgewandelt werden soll
  136. |             field    <- Anzahl der Stellen, die umgewandelt werden sollen
  137. |             fillChar <- Füllzeichen mit dem field aufgefüllt werden soll
  138. |                      -> String mit der umgewandelten Zahl
  139. |
  140. $$OwnHeap:=TRUE
  141. PROCEDURE IntToHexString(val      IN D2 : LONGINT;
  142.                          field    IN D3 : INTEGER:=0;
  143.                          fillChar       : CHAR:=" ";
  144.                          dollar         : BOOLEAN:=FALSE):STRING;
  145.  
  146. |
  147. | Parameter : val      <- Integerzahl, die umgewandelt werden soll
  148. |             field    <- Anzahl der Stellen, die umgewandelt werden sollen
  149. |             fillChar <- Füllzeichen mit dem field aufgefüllt werden soll
  150. |                      -> String mit der umgewandelten Zahl
  151. | tested
  152. $$OwnHeap:=TRUE
  153. PROCEDURE IntToBinString(val      IN D2 : LONGINT;
  154.                          field    IN D3 : INTEGER:=0;
  155.                          fillChar       : CHAR:=" ";
  156.                          sign           : BOOLEAN:=FALSE):STRING;
  157. |
  158. | Parameter : Wie IntToString, jdeoch für Cardinal
  159. | tested
  160. $$OwnHeap:=TRUE
  161. PROCEDURE CardToString(val      IN D2 : LONGCARD;
  162.                        field    IN D3 : INTEGER:=0;
  163.                        fillChar       : CHAR:=" "): STRING;
  164.  
  165. |
  166. | Parameter : val      <- Cardinalzahl, die umgewandelt werden soll
  167. |             field    <- Anzahl der Stellen, die umgewandelt werden sollen
  168. |             fillChar <- Füllzeichen mit dem field aufgefüllt werden soll
  169. |             dollar   <- Gibt an, ob ein `$` vor die Zahl gesetzt werden soll
  170. |                      -> String mit der umgewandelten Zahl
  171. | tested
  172. $$OwnHeap:=TRUE
  173. PROCEDURE CardToHexString(val      IN D2 : LONGCARD;
  174.                           field    IN D3 : INTEGER:=0;
  175.                           fillChar IN D4 : CHAR:=" ";
  176.                           dollar   IN D5 : BOOLEAN := FALSE):STRING;
  177.  
  178. |
  179. | Parameter : val      <- Cardinalzahl, die umgewandelt werden soll
  180. |             field    <- Anzahl der Stellen, die umgewandelt werden sollen
  181. |             fillChar <- Füllzeichen mit dem field aufgefüllt werden soll
  182. |             sign     <- Gibt an, ob ein `%` vor die Zahl gesetzt werden soll
  183. |                      -> String mit der umgewandelten Zahl
  184. | tested
  185. $$OwnHeap:=TRUE
  186. PROCEDURE CardToBinString(val      IN D2 : LONGCARD;
  187.                           field    IN D3 : INTEGER:=0;
  188.                           fillChar IN D4 : CHAR:=" ";
  189.                           sign     IN D5 : BOOLEAN := FALSE):STRING;
  190.  
  191. |
  192. | Parameter : str      <- String der umgewandelt werden soll
  193. |             point    <- Zeichen, das als Dezimalpunkt interpretiert
  194. |                         werden soll
  195. |                      -> Longrealzahl
  196. |tested
  197. PROCEDURE StringToReal(REF str   IN A0 : STRING;
  198.                            point       : CHAR:="."):LONGREAL;
  199.  
  200. |
  201. | Parameter : str      <- String der umgewandelt werden soll
  202. |                      -> Longintzahl
  203. | tested
  204. PROCEDURE StringToInt(REF str IN A0 : STRING):LONGINT;
  205.  
  206. |
  207. | Parameter : str      <- String der umgewandelt werden soll
  208. |                      -> Longintzahl
  209. | tested
  210. PROCEDURE HexStringToInt(REF str IN A0 : STRING):LONGINT;
  211.  
  212. |
  213. | Parameter : str      <- String der umgewandelt werden soll
  214. |                      -> Longintzahl
  215. | tested
  216. PROCEDURE BinStringToInt(REF str IN A0 : STRING):LONGINT;
  217. |
  218. | Parameter : str      <- String der umgewandelt werden soll
  219. |                      -> Longcardzahl
  220. | tested
  221. PROCEDURE StringToCard(REF str IN A0 : STRING):LONGCARD;
  222.  
  223. |
  224. | Parameter : str      <- String der umgewandelt werden soll
  225. |                      -> Longcardzahl
  226. | tested
  227. PROCEDURE HexStringToCard(REF str IN A0 : STRING):LONGCARD;
  228.  
  229. |
  230. | Parameter : str      <- String der umgewandelt werden soll
  231. |                      -> Longcardzahl
  232. | tested
  233. PROCEDURE BinStringToCard(REF str IN A0 : STRING):LONGCARD;
  234.  
  235. GROUP
  236.   All  = RealToString,RealToExpString,RealToMaskedString,IntToString,
  237.          CardToHexString,StringToReal,StringToInt,HexStringToCard,
  238.          IntToHexString,IntToBinString,CardToString,CardToHexString,
  239.          CardToBinString,HexStringToInt,BinStringToInt,StringToCard,
  240.          BinStringToCard,NoPointInMask;
  241.  
  242.  
  243. END Conversions.
  244.  
  245.