Menü
Avatar von Klaus Wachtler

mehr als 1000 Beiträge seit 06.03.2000

Re: Was bedeutet [format 15X, A80] ?

Das sieht in der Tat schwer nach Fortran aus.

Falls es sich um Ausgabe handelt:

"15X" heißt: Ausgabe von 15 Leerzeichen (wobei das erste Zeichen
jeder Zeile zumindest bei Druckausgabe oder auf einem
Terminal ein Steuerzeichen ist; ein Leerzeichen steht dabei für
Zeilenvorschub, eine 1 in der ersten Spalte ist ein
Seitenvorschub, eine Null ist Vorschub zur übernächsten Zeile,
ein Pluszeichen nimmt die letzte Zeile nochmals und druckt drüber.).
Genau genommen heißt "nX" nicht "n Leerzeichen ausgeben", sondern
"n Stellen bei der Ausgabe überspringen". Läuft aber bei einem
Drucker auf n Leerzeichen raus.

Die einzelnen Teile der Formatanweisung sind mit einem Komma
getrennt.

"A80" steht für eine String-Ausgabe (CHARACTER in Fortran) mit
einer Länge von 80 Zeichen (Feldbreite).

"I" (ggf. mit einer Feldbreite dahinter) steht für eine INTEGER mit
der angegebenen Stellenzahl.

"E" ist eine Gleitkommazahl; "E14.4" hat eine Feldbreite von 14 und
4 Stellen Genauigkeit in Exponentialdarstellung (" -.1234E10").
Wenn man die Länge des Exponenten angeben möchte, schreibt man
beispielsweise "E11.4E5" (11 Zeichen Feldbreite, 4 Genauigkeit,
3 Stellen Exponent; also etwa "-.1234E+002").

"D" ist wie "E", schreibt aber ein D statt des E als Exponenten
("+.31234D002"; gedacht für DOUBLE PRECISION-Werte).

"F" ist eine Gleitkommazahl ohne Exponetialdarstellung ("F8.4"
ergibt "  1.1234").

"G" ist wie E oder F, je nach Größe der Zahl was halt besser paßt.

"L" ist eine LOGICAL .

"Tn" (Tabulator) setzt auf die Position n.
"TLn" setzt um n nach links, "TRn" um n nach rechts.

"nH" (Hollerithkonstante) gibt die nächsten n Zeichen aus wie sie
sind
(also ergibt "4Habcd" die Ausgabe "abcd").
Man könnte den Text aber auch in Apostrophe einschließen ('abcd').
Will man in einem solchen Text ein Apostroph stehtn haben, schreibt
man zwei dafür ('Klaus''s Rechner').

"kP" skaliert die Ausgabe (k kann positiv oder negativ sein):
- bei "F" wird vor der Ausgabe mit 10^k mulitpliziert, die
ausgegebene
  Zahl hat also einen anderen Wert (3.14 mit "1PF" ausgegeben ergibt
  31.400000)!
- bei "E" und "D" wird der Dezimalpunkt in der Ausgabe verschoben,
  und dafür der Exponent so angepaßt, daß der Wert wieder stimmt
  (3.141 mit "-1PE14.4" ergibt "      .0314E+02").

Vor positiven Zahlen wird normalerweise kein Vorzeichen ausgegeben
(je nach Feldbreite aber ein Leerzeichen).
Mit "SP" wird für nachfolgende Ausgaben aber auch ein positives
Vorzeichen ausgegeben, nach "S" oder "SS" nicht mehr
(gilt für I, F, E, D, G).

"/" beendet einen Datensatz (auf dem Drucker eine Zeile), und ist
also sowas wie ein Zeilenvorschub (wobei die nächste Zeile
wahrscheinlich wieder mit einem Leerzeichen beginnen soll).
Mehrere Leerzeilen erzeugt man mit mehreren "////...".
Die einzelnen Schrägstriche können mit Kommata getrennt oder
eingerahmt werden, müssen aber nicht.

Dann kann man noch Wiederholungen von identischen Formaten
mit Klammern und einer Zahl davor zusammenfassen:
"3(I3,I4)" ist dasselbe wie "I3,I4,I3,I4,I3,I4"
Wenn es nur ein Format ist, braucht man keine Klammern
("3I4" ist "I4,I4,I4").


HTH

mfgkw


rinderwahn schrieb am 21. Oktober 2003 10:22

> Ist aus der Doku zu einem Dateiformat, leider ohne weitere Erklärung.
> Oder Format (21X,1PE12.4)? Ich denke es hat was mit Fortran zu tun.
> Google findet zwar Beispiele, aber keine Beschreibung.

Bewerten
- +
Anzeige