Parent: [c017f0] (diff)

Download this file

FFormAus.def    169 lines (149 with data), 10.1 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
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
DEFINITION MODULE FFormAus;
(*========================================================================*)
(* WICHTIG: BITTE NUR DIE DATEI XFormAus.mod.m2cc EDITIEREN !!! *)
(*========================================================================*)
(* *)
(* Prozeduren zur Ausgabe von N Parametern (dWriteN) in eine Datei *)
(* --------------------------------------------------------------- *)
(* *)
(* Die Art der Parameter und die Form deren Ausgabe wird dabei "uber den *)
(* String Format "ubergeben. *)
(* *)
(* Zul"assige Parameter sind : *)
(* *)
(* CARDINAL / LONGCARD : FORMAT = Cn *)
(* INTEGER : FORMAT = In *)
(* LONGREAL : FORMAT = Fn.m|En.m (Fest/Flie\3kommadarst.) *)
(* CHAR / ARRAY OF CHAR : FORMAT = S *)
(* CHAR / ARRAY OF CHAR : FORMAT = An (wie FORTRAN) *)
(* *)
(* n : Feldbreite *)
(* m : Nachkommastellen bei LONGREAL-Parametern *)
(* *)
(* Bei Angabe von "An" wird linksb"uendig ausgeschrieben und, wenn die *)
(* Zeichenkette zu kurz ist, mit Leerzeichen aufgef"ullt. *)
(* Ist die Zeichenkette zu lang wird sie abgeschnitten. *)
(* Wird A ohne Feldbreite angegeben wird der entsprechende Parameter wie *)
(* bei "S" ausgegeben *)
(* *)
(* Zus"atzlich kann durch das Zeichen "/" ein Zeilenvorschub erreicht *)
(* werden und durch Xn die Ausgabe von n Leerzeichen. *)
(* Alle Elemente des Formatstrings m"ussen dabei (Au\3er bei den Zeilen- *)
(* vorsch"uben) durch Kommata getrennt werden. *)
(* *)
(* Beispiel : *)
(* *)
(* Write3('//,S,C3,X5,F12.5,///','i,x : ',i,x); : *)
(* *)
(* Erzeuge zwei Zeilenvorsch"ube, schreibe 'i,x : ', gebe den *)
(* (CARDINAL-) Parameter i mit drei Ziffern aus, erzeuge 5 Leerzeichen, *)
(* gebe den (LONGREAL-) - Parameter x in Flie\3kommaformat mit einer *)
(* Feldbreit von 12 Zeichen und 6 Nachkommstellen aus und erzeuge dann *)
(* nochmals drei Zeilenvorsch"ube. *)
(* *)
(* Procedures for the output of N parameters (dWriteN) on a file *)
(* --------------------------------------------------------------- *)
(* *)
(* The type of the paraters and their format are transferred to the *)
(* procudure via the string "Format" *)
(* *)
(* Allowed (implemented) parameters are *)
(* *)
(* CARDINAL / LONGCARD : FORMAT = Cn *)
(* INTEGER : FORMAT = In *)
(* REAL/LONGREAL : FORMAT = Fn.m|En.m (floating/exponetial) *)
(* CHAR / ARRAY OF CHAR : FORMAT = S *)
(* CHAR / ARRAY OF CHAR : FORMAT = An (like in FORTRAN) *)
(* *)
(* n : field width *)
(* m : digits after the decimal point for real parameters *)
(* *)
(* For the "An" format a string will be written out left oriented with n *)
(* characters, if n > length(string) blanks are added. If the string is *)
(* too long truncation will take place. *)
(* *)
(* The character "/" created a newline and with Xn you trigger the output *)
(* on n blanks *)
(* Alle elements of the format strings have to be separated by a comma, *)
(* exept for the newline character. This is best described with the *)
(* following example: *)
(* *)
(* Write3('//,S,C3,X5,F12.5,///','i,x : ',i,x); : *)
(* *)
(* generated two new lines, will output 'i,x : ', write cardinal i with *)
(* a fieldwidth of 3 digits, output five blancs and output the real *)
(* parameter x in floating point format with a field width of 12 and 6 *)
(* digit afer the decimal point. Finally creat 3 new lines. *)
(*------------------------------------------------------------------------*)
(* Implementation : Michael Riedl *)
(* Licence : GNU Lesser General Public License (LGPL) *)
(*------------------------------------------------------------------------*)
(* $Id: XFormAus.def.m2cc,v 1.3 2018/03/21 11:05:30 mriedl Exp mriedl $ *)
FROM SYSTEM IMPORT BYTE;
FROM FileSystem IMPORT File;
PROCEDURE SetExpAnz(nExp : CARDINAL);
(*----------------------------------------------------------------*)
(* Setzt die Anzahl der Ziffern im Exponenten von Fliesskomma- *)
(* zahlen in Exponentialschreibweise. Der Wert von nExp sollte *)
(* im Bereich [1..4] liegen, Vorgabe ist 2 was fuer die meisten *)
(* Zwecke ausreichend sein sollte. *)
(* Bitte beachten dass dieser Werte fuer TFormAus und FFormAus *)
(* nicht unabhaengig gewaehlt werden kann da beide Module auf *)
(* dieselben Schreibroutinen in FIO2.mod zurueckgreifen. *)
(* *)
(* Defines the number of digits in the exponent of floating point *)
(* values in sientific or engineering representation. The value *)
(* of nExp shall be in the interval [1..4], default value is 2 *)
(* which should be sufficient for most cases. *)
(* Please not the for TFormAus and FFormAus the value cannot be *)
(* choosen independently. *)
(*----------------------------------------------------------------*)
PROCEDURE dWrite1( Aus : File;
Format : ARRAY OF CHAR;
Par1 : ARRAY OF BYTE);
(*........................................................................*)
PROCEDURE dWrite2( Aus : File;
Format : ARRAY OF CHAR;
Par1 : ARRAY OF BYTE;
Par2 : ARRAY OF BYTE);
(*........................................................................*)
PROCEDURE dWrite3( Aus : File;
Format : ARRAY OF CHAR;
Par1 : ARRAY OF BYTE;
Par2 : ARRAY OF BYTE;
Par3 : ARRAY OF BYTE);
(*........................................................................*)
PROCEDURE dWrite4( Aus : File;
Format : ARRAY OF CHAR;
Par1 : ARRAY OF BYTE;
Par2 : ARRAY OF BYTE;
Par3 : ARRAY OF BYTE;
Par4 : ARRAY OF BYTE);
(*........................................................................*)
PROCEDURE dWrite5( Aus : File;
Format : ARRAY OF CHAR;
Par1 : ARRAY OF BYTE;
Par2 : ARRAY OF BYTE;
Par3 : ARRAY OF BYTE;
Par4 : ARRAY OF BYTE;
Par5 : ARRAY OF BYTE);
(*........................................................................*)
PROCEDURE dWrite6( Aus : File;
Format : ARRAY OF CHAR;
Par1 : ARRAY OF BYTE;
Par2 : ARRAY OF BYTE;
Par3 : ARRAY OF BYTE;
Par4 : ARRAY OF BYTE;
Par5 : ARRAY OF BYTE;
Par6 : ARRAY OF BYTE);
(*........................................................................*)
PROCEDURE dWrite7( Aus : File;
Format : ARRAY OF CHAR;
Par1 : ARRAY OF BYTE;
Par2 : ARRAY OF BYTE;
Par3 : ARRAY OF BYTE;
Par4 : ARRAY OF BYTE;
Par5 : ARRAY OF BYTE;
Par6 : ARRAY OF BYTE;
Par7 : ARRAY OF BYTE);
END FFormAus.