Parent: [288ae8] (diff)

Download this file

RealConvert.def    93 lines (80 with data), 5.7 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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.1.1 2018/06/08 21:38:43 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.