DEFINITION MODULE RealConvert;
(*------------------------------------------------------------------------*)
(* Modul fuer die Konvertierung Fliesskommazahlen *)
(* Modul for the conversion of real numbers to string or visa versa. *)
(*------------------------------------------------------------------------*)
(* Implementation : Michael Riedl *)
(* Licence : GNU Lesser General Public License (LGPL) *)
(*------------------------------------------------------------------------*)
(* $Id: RealConvert.def,v 1.1 2015/09/13 20:48:41 mriedl Exp mriedl $ *)
FROM ConvTypes IMPORT ConvResults;
PROCEDURE StringToReal(VAR Zahl : ARRAY OF CHAR;
VAR x : LONGREAL;
VAR result : ConvResults);
(*----------------------------------------------------------------*)
(* Konvertiert den in Zahl stehenden String in eine *)
(* LONGREAL-Zahl. *)
(* *)
(* Die Syntax einer zul"assinen (LONG)REAL-Darstellung ist: *)
(* *)
(* ["+" | "-"] digit { digit } ["." digit { digit } ] *)
(* ["E" ["+" | "-"] digit [digit] ] *)
(* *)
(* Der Exponent kann auch mit "e","d","D" angegeben werden. *)
(* *)
(* Converts a number provided in string "Zahl" into a LONGREAL *)
(* *)
(* The syntax of a propper (LONG)REAL-representation is: *)
(* *)
(* ["+" | "-"] digit { digit } ["." digit { digit } ] *)
(* ["E" ["+" | "-"] digit [digit] ] *)
(* *)
(* The exponent symbol can also be given by "e","d","D". *)
(*----------------------------------------------------------------*)
PROCEDURE RealToFixString(VAR String : ARRAY OF CHAR;
x : LONGREAL;
Breite : CARDINAL;
Komma : CARDINAL;
VAR done : BOOLEAN);
(*----------------------------------------------------------------*)
(* Transformiert x in einen String mit Festkommadarstllung. *)
(* *)
(* Transformiert x in einen String mit Festkommadarstllung. *)
(*----------------------------------------------------------------*)
PROCEDURE RealToFloatString(VAR RealStr : ARRAY OF CHAR;
x : LONGREAL;
Breite : CARDINAL; (* n : Feldbreite *)
Komma : INTEGER; (* m : Nachkommastellen *)
ExpLen : CARDINAL; (* 2,3 Exponentstellen *)
VAR done : BOOLEAN);
(*----------------------------------------------------------------*)
(* Transformiert x in einen String. *)
(* Wenn Komma >= 0 mit Festkommadarstllung, ansonsten in *)
(* Exponentialdarstellung. Durch den Parameter ExpLen kann dabei *)
(* die Stellenzahl im Exponenten (2 oder 3) gesteuert werden. *)
(* *)
(* Transformiert x in einen String. *)
(* Wenn Komma >= 0 mit Festkommadarstllung, ansonsten in *)
(* Exponentialdarstellung. Durch den Parameter ExpLen kann dabei *)
(* die Stellenzahl im Exponenten (2 oder 3) gesteuert werden. *)
(*----------------------------------------------------------------*)
PROCEDURE RealToEngString(VAR RStr : ARRAY OF CHAR;
x : LONGREAL;
Breite : CARDINAL;
Komma : CARDINAL;
ExpLen : CARDINAL;
VAR done : BOOLEAN);
(*----------------------------------------------------------------*)
(* Funktioniert wie die Routine RealToFloatString mit dem *)
(* Unterschied, da3 immer Exponentialdarstellung gew"ahlt wird *)
(* und der Exponent immer durch 3 teilbar ist. *)
(* Das hei3t auch, das der Vorkommaanteil zwischen 1 und 999 *)
(* liegt. *)
(* *)
(* Works like the routine RealToFloatString with the difference *)
(* the exponential representation is used in all cased and that *)
(* the exponent is divideble by three. *)
(* This also means the the part before the decimal dot is between *)
(* 1 and 999 *)
(*----------------------------------------------------------------*)
END RealConvert.