Printf

value Printf ( string strFormat, value Arg... );

Rückgabewert

Rückgabewert

Beschreibung

string

Das Ergebnis der Formatierung.

Parameter

strFormat

Die String nach dessen Muster die Parameter Arg formatiert werden sollen.

Die Platzhalter für die Parameter haben folgende allgemeine Form:

[%argid]%[flags][width][.precision]type (Parameter in eckigen Klammern sind optional)

 

argid wird dann notwendig, wenn Formatierungstexte mehrsprachig entwickelt werden und Parameter in den jeweiligen Landessprachen an unterschiedlichen Stellen des Ergebnistextes stehen sollen.

Printf (T"Heute ist der %02d.%02d.%04d", TimeGetDay(), TimeGetMonth(), TimeGetYear());

Die Übersetzung von T"Heute ist %02d.%02d.%04d" ins Englische ist "Today is %2%02d/%1%02d/%3%04d".

Die Schreibweise des Datums im Englischen ist Monat/Tag/Jahr. Da jedoch die Übergabeparameter Tag, Monat und Jahr sind, muss der englische Formatierungstext die Reihenfolge der Argumente ändern und %argid den Formatierungsplatzhaltern voranstellen "Today is "%2%02d/%1%02d/%3%04d".
 

Als flags sind möglich:

flags

Beschreibung

Beispiel

Resultat

-

linksbündig

"Weg %-10d km", 9232
"Weg %10d km", 2374

"Weg 9232       km"
"Weg       2374 km"

+

bei positiven Werten '+' darstellen

"Wert %+d", 218
"Wert %+d", -218

"Wert +218"
"Wert -218"

' '

bei positiven Werten ' ' darstellen

"% d", 21
"% d", -21

" 21"
"-21"

0

wenn width angegeben mit 0 auffüllen

"%06d Stück", 2345

"002345 Stück"

 

width steht als Platzhalter für die Mindestbreite der Formatierung. Wird ein Asterisk (*) als width angegeben, so wird der nächste Wert der Argumentenliste als Mindestbreite genommen.
 

Beispiel

Resultat

"%5d", 10
"%05d", 4189
"%*d", 5, 72
"%0*d", 5, 329

"   10"
"04189"
"   72"
"00329"



precision gibt die Anzahl der Nachkommastellen bzw. die maximale Anzahl Zeichen an. Wird ein Asterisk (*) als precision angegeben, so wird der nächste Wert der Argumentenliste als Anzahl der Nachkommastellen genommen.
 

Beispiel

Resultat

"%.2f", 10
"%.*f", 3, 3.2723

"10.00"
"3.272"



Als type sind zulässig:

type

Beschreibung

Beispiel

Resultat

d

dezimal, vorzeichenbehaftet

"%d, 872
"%d", -872
"Dezimal %4d", 102
"Dezimal %4d", -102

"872"
"-872"
"Dezimal  102"
"Dezimal -102"

u

dezimal, vorzeichenlos

"Dezimal %05u", 453

"Dezimal 00453"

b

binär, vorzeichenlos

"Binär %08b", 21

"Binär 00010101"

o

oktal

"Oktal %03o", 37

"Oktal 025"

x

hexadezimal, vorzeichenlos mit a-f

"Hexadezimal %04x", 763

"Hexadezimal 02fb"

X

hexadezimal, vorzeichenlos mit A-F

"Hexadezimal %X", 763

"Hexadezimal 2FB"

f

Fließpunktzahl ([-]dddd.dddd)

"Zahl %010.4f", 224.7
"Zahl %.3f", 13.2348

"Zahl 00224.7000"
"Zahl 13.235"

e

Fließpunktzahl ([-]d.dddd)

"Zahl %.3e", 54.2399

"Zahl 5.424e+001"

c

einzelnes Zeichen

"Character %c", 72

"Character H"

s

Zeichenkette

"String %s", "XYZ"

"String XYZ"

%

Zeichen %

"10 %%"

"10 %"

Bemerkung

Erzeugt einen String anhand einer Formatierungszeichenfolge. Das Ergebnis kann einer string Variablen zugeweisen, anderen Funktionen als Parameter übergeben oder direkt in einem Bauelement als Anzeigequelle eingetragen werden.

Beispiel

//z.B. in einem Text-/Wertanzeige Bauelement
Printf ("Der Druckwert ist: %3.2f bar", Pressure);
   
Ergibt z.B. bei numerische Variable Pressure = 23,418:
"Der Druckwert ist: 23,42 bar", wobei durch die Formatierung "3" vor dem Komma eine zusätzliche Leerstelle erzeugt wird.

Tip:
Zur Formatierung können auch
\r - zum Sprung an den Zeilenanfang
\n - zum Sprung in die nächste Zeile
\t - zum Einfügen eines Tabulators verwendet werden
   

Sonstige Funktionen

Siehe auch MailSend, MessageBeep, MessageBox, PrintDirect, Random, ReportConfirm, Round, ShellExecute, Sleep, SpeakText, SysDatabaseDeleteAllReports, ThrowReports, ValueChanging, ValueConvertAD, ValueConvertDA, WinHelp