1.2.26 BufAppendFromDouble - hängt an Buffer formatierte Double an
BufAppendFromDouble(strBufName,dValue,strFormat);
Argumente
strBufName
Name des Buffers der bearbeitet werden soll.
Achtung:
Der Buffer muss vorher mit „\0“ (Hexadezimalen Nullen (0)) initialisiert werden
 
dValue
Zahl, die an den Buffer angehängt werden soll
 
strFormat
Formatvorschrift, ist die Formatvorschrift leer (““), wird die Zahl direkt, d.h. unformatiert, durch C++ in String umgewandelt angehängt.
Achtung:
Die C++ Umwandlung kann teilweise Ergebnisse mit zu vielen Nachkommastellen bzw. exponentielle Darstellung liefern
Beschreibung
Diese Funktion hängt einen String, der aus der Zahl mit oder ohne Formatierung entsteht, an einen Buffer an.
Da der Buffer mit ‚\0’ gefüllt ist, wird bei dem das erste Auftreten von ‚\0’ gesucht. Ab der Stelle, an welcher das erste Zeichen ‚\0’ gefunden wurde, wird der String (ggf. formatiert) angehängt.
Danach ist das erste Zeichen ‚\0’ wieder hinter dem angehängten String und es kann ein weiteres Feld angehängt werden
Funktionsart
Bufferfunction, STPFunktion ???
Beispiel
// an „Satz“ Inhalt des formatierten Feldes anhängen
// mit nachlaufenden ; und neuem Satz
BufAppendFromDouble(BufSatz,dNetto,"S-20,2/T>>;[CR][LF]>>");
Siehe auch
BufAssignStringAtPIS, BufAppendFromString
Formatvorschrift kann maximal aus 3 Teilen bestehen
  • Text 1
  • Format mit Optionen
  • Text 2
und muss in doppelten Einführungszeichen eingeschlossen werden.
Im Text 1 kann ein vorlaufender Text, im Text 2 ein nachlaufender Text - wie z.B. Trennzeichen, Einführungszeichen - angegeben werden.
 
Kennung
Parameter
Beispiel
 
Text 1
<<
muss vor und nach dem Text (vor der Formatangabe) stehen
Text beliebige / Zeichenfolge
<<Preis:<<
 
  • Format kann maximal aus „Kategorie [führende Zeichen] [führendes Vorzeichen] [Länge|Vorkommastellen]
  • [Dezimaltrenner] [Nachkommastellen] [nachlaufendes Vorzeichen] [Option]“
Formatierung in alphanumerisches Format:
Format
Kategorie
C
linksbündig als String in der Länge „a“.
Wenn das zu formatierte Feld kürzer als die vorgegebene Länge ist, werden hinten bis zu erreichen der Länge Leerzeichen angehängt, wenn das Feld länger ist, werden nur die ersten „a“ Zeichen verwendet.
C10
 
 
Länge
a
gesamte Länge des Ausgabestrings im Bereich von 1 bis 99
10
 
 
Option
/T
Trim, alle führenden und nachlaufenden Leerzeichen werden aus dem Ergebnis entfernt, dadurch kann die gesamte Länge kleiner als „a“ werden, auch ein Leerstring ist möglich
 
 
Formatierung in erweitertes numerisches infra-Format (rechtsbündig, Zahl „123.45“):
 
 
 
 
Beispiel
Darstellung
Format
Kategorie
N
numerisches infra-Format mit Vorzeichen vor der 1-sten Stelle der Zahl „-       12.32“, die gesamte formatierte Länge ergibt sich aus der Anzahl der Vorkomma-, Nachkommastellen und 1 Stelle für Vorzeichen und bei Nachkommastellen 1 Stelle für Dezimaltrenner
N6,3
    123,450
 
führendes Vorzeichen
„-“
Leerzeichen bei positiven Werten, „-“ bei negativen Werten
Achtung: kann nur ein führendes Vorzeichen angegeben werden
N+6,3
 
    123,450
 
 
„+“
„+“ bei positiven Werten, „-“ bei negativen Werten
 
+   123,450
 
führende Zeichen
(x)
alle Leerstellen zwischen dem Vorzeichen und der ersten signifikanten Vorkommastelle werden mit dem Zeichen „x“, welches in Klammern eingeschlossen werden muss, ersetzt. Damit können führende Nullen bzw. beliebige Schutzzeichen eingesetzt werden
N(0)+6,3
+000123,450
 
Vorkommastellen
v
Anzahl der auszugebenden Vorkommastellen im Bereich von 0 bis 21
Achtung: die Summe v + n + 1 + eventueller Dezimaltrenner darf nicht größer als 22 sein
6
 
 
Dezimaltrenner
t
Zeichen für einen beliebigen Trenner, „!“ bedeutet, dass kein Trenner ausgegeben wird
N(0)-6!3
 000123450
 
Nachkommastellen
n
Anzahl der auszugebenden Nachkommastellen im Bereich von 0 bis 9
3
 
 
nachlaufendes Vorzeichen
 
verboten
 
 
 
Option
/T
Trim, alle führenden Leerzeichen werden aus dem Ergebnis entfernt, dadurch kann die gesamte Länge kleiner werden
N6,3/T
123,450
 Formatierung in weitere numerische Formate (rechtsbündig, Zahl „-123.45“):
 
 
 
 
Beispiel
Darstellung
Format
Kategorie
S
numerisches Format mit Vorzeichen vor der 1-sten signifikanten Stelle bzw. vor dem 1-sten führendem Zeichen in der Gesamtlänge „a“
S+11.3
   -123.450
 
 
R
numerisches Format wie bei Kategorie „S“ aber mit reziproken Vorzeichen (aus „+“ wird „-“ und umgekehrt)
R+11.3
   +123.450
 
 
U
numerisches Format ohne Vorzeichen in der Gesamtlänge „a“
U6
   123
 
führendes Vorzeichen
„-“
Leerzeichen bei positiven Werten, „-“ bei negativen Werten
Achtung: Vorzeichen kann nur einmal innerhalb der Vorschrift - entweder als führendes oder als nachlaufendes Vorzeichen - angegeben werden
S-8.3
S+6
-123.450
  -123
 
 
„+“
„+“ bei positiven Werten, „-“ bei negativen Werten
S+8.2
 -123.45
 
führende Zeichen
(x)
alle Leerstellen zwischen dem Vorzeichen und der ersten signifikanten Vorkommastelle werden mit dem Zeichen, welches in den Klammern eingeschlossen ist, ersetzt. Damit können führende Nullen bzw. beliebige Schutzzeichen eingesetzt werden
S(0)+11.3
-000123.450
 
Länge
a
gesamte Ausgabelänge darf maximal 22 sein
 
 
 
Dezimaltrenner
t
Zeichen für einen beliebigen Trenner, „!“ bedeutet, dass kein Trenner ausgegeben wird
 
 
 
Nachkommastellen
n
Anzahl Nachkommastellen, maximal 9
 
 
 
nachlaufendes Vorzeichen
 
wie führendes Vorzeichen, nur hinter der letzten Stelle
S(x)11n3+
R(x)11n3+
xxx123u450-
xxx123u450+
 
Option
/T
Trim, alle führenden Leerzeichen werden aus dem Ergebnis entfernt, dadurch kann die gesamte Länge kleiner werden
S+20,2/T
123,450
Formatierung von Datumsfeldern (13.07.2002 „20020713“ bzw. „020713“):
 
 
 
 
Beispiel
Darstellung
Format
Kategorie
D
Datum aus 6-stelligem Datum im Format jjmmtt (infra) in ein beliebiges Format, Ausgabemuster kann auch mit beliebigen Trennern angegeben werden, die Muster TT, MM und/oder JJ müssen immer 2-stellig angegeben werden, die Länge ergibt sich aus dem gesamten Ausgabemuster
Achtung: es erfolgt keine Datumsprüfung.
DTTMMJJ
DMM.JJ
130702
07.02
 
 
d
wie Kategorie „D“ nur aus 8-stelligem Datum im Format (infra) jjjjmmtt, Jahr kann entweder 2-stellig JJ oder 4-stellig formatiert werden
dMM-TT-JJ
dTTMMJJJJ
07-13-02
13072002
 
 
W
Aus vorgegebener Kalenderwoche im Format jjww (infra) wird mit dem Muster JJ und WW mit beliebigen Trenner formatiert (KW 15/02)
W-WW-JJ-
-15-02-
 
Kennung
Parameter
Beispiel
Text 2
>>
muss vor und nach dem Text (nach der Formatangabe) stehen
Text beliebige / Zeichenfolge
>>US$>>
Hinweis
Der Text kann jedes beliebiges Zeichen enthalten. Nicht eingebbare Zeichen (auch Anführungszeichen) können durch Angabe des ASCII-Codes in eckigen Klammern [aaa] vorgegeben werden. Für das doppeltes Anführungszeichen muss zwingend [34] abgestellt werden.
Für die Ausgabe der Steuerzeichen für neuer Satz mit „CR“ (Wagen rücklauf = Carriage return) und „LF“ (Zeilenschaltung = Line feed) in der Ausgabedatei kann anstatt [13][10] auch direkt [CR][LF] eingetragen werden oder wenn nur Zeilenschaltung alleine reicht wird „\n“ eingetragen.
Beispiele:
„C10“ 
String in Länge 10, bei kürzerer Quelle wird rechts mit Blanks aufgefüllt
„C8/T“
String in Länge 8, hintere Blanks werden abgeschnitten
„C5>>,>>“
String in Länge 5, dahinter Trenner Komma „,“
„<<x<<C5“
vorlaufender Text „x“, danach String in Länge 5, im Text kann jedes beliebiges Zeichen (auch „ bzw. “) „durch die Angabe des ASCII-Codes in eckigen Klammern [aaa] übergeben werden
„N6.3“
wie infra-Standard, 6 Vorkommastellen, 3 Nachkommastellen
„U10.2“
Ausgabelänge 10, davon 2 Nachkommastellen, ohne Vorzeichen, Dezimaltrenner Punkt
„U9,1/T“
Ausgabelänge 9 (7 Vorkommastellen, 1 Nachkommastelle) ohne Vorzeichen, Dezimaltrenner Komma, ohne führende Leerzeichen
„U8!2“
Ausgabelänge 8 (6 Vorkommastellen, 2 Nachkommastellen)ohne Vorzeichen, ohne Dezimaltrenner
„S-8.3“ 
Ausgabelänge 8, mit gleitenden führendem Vorzeichen „-“ bzw. „ “ (Leerzeichen) , Dezimaltrenner Punkt
„S+8.3“
mit gleitenden führendem Vorzeichen „-“ bzw. „+“, Dezimaltrenner Punkt
„S8.3-„ 
mit nachlaufendem Vorzeichen „-“ bzw. „ “ (Leerzeichen) , Dezimaltrenner Punkt
„S8.3+“
mit nachlaufendem Vorzeichen „-“ bzw. „+“, Dezimaltrenner Punkt
„S(0)+8.3“
mit gleitenden Vorzeichen, danach mit vorlaufenden „0“, Dezimaltrenner Punkt
„S8+“ 
mit nachlaufendem Vorzeichen „-“ bzw. „+“, wie Sa.0+ (ohne Nachkommastellen)
„R8+“
mit nachlaufendem reziproken Vorzeichen „-“ bzw. „+“