was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews
 sonstiges ¦  tutorials ¦  Add&Win Gewinnspiel

Tips (1541)

Dateien (137)
Datenbanken (90)
Drucken (35)
Grafik (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Mathematik (76)
Multimedia (45)
Oberfläche (107)
Objekte/
ActiveX (51)

OpenTools API (3)
Sonstiges (126)
Strings (83)
System (266)
VCL (242)

Tips sortiert nach
Komponente


Tip suchen

Tip hinzufügen

Add&Win Gewinnspiel

Werbung

68 Visitors Online


 
...Format-Parameter mehrfach nutzen?
Autor: Thomas Mueller
Homepage: http://www.dummzeuch.de
[ Tip ausdrucken ]  

Tip Bewertung (3):  
     


Sometimes you probably have written something like this:

s := Format('Hello %s, your name is %s %s', [FirstName, FirstName, LastName]);

(an admittedly stupid example ;-) )

And if you do, you probably found it annoying that you need to specify the FirstName parameter
twice, in particular if there are lots of similar lines.

But this isn't necessary because you can specify the parameter position to use for the placeholder
in the format string like this:

s := Format('Hello %0:s, your name is %0:s %1:s', [FirstName, LastName]);

Just one more example from a code generator I am currently writing:

TableName := 'Customer';
...
s := Format(' f%0:sTableAuto := T%0:sTableAuto.Create(f%0:Table);', [TableName]);

which results in

s := ' fCustomerTableAuto := TCustomerTableAuto.Create(fCustmerTable);';

{********************************************************************}

Manchmal schreibt man solche Dinge wie:

s := Format('Hallo %s, Dein Name ist %s %s', [Vorname, Vorname, Nachname]);

(Ok, doofes Beispiel. ;-) )

Und aergert sich dann, insbesondere, wenn man es sehr haeufig schreibt, dass man den Parameter
Vorname mehrfach angeben muss.

Das ist jedoch gar nicht notwendig, denn man kann im Format-String bei einem Platzhalter auch
angeben, welcher Parameter dort eingefuegt werden soll:

s := Format('Hallo %0:s, Dein Name ist %0:s %1:s', [Vorname, Nachname]);

Hier noch ein etwas sinnvolleres Beispiel aus einem Code-Generator, den ich gerade schreibe:

TableName := 'Kunden';
...
s := Format(' f%0:sTableAuto := T%0:sTableAuto.Create(f%0:Table);', [TableName]);

soll ergeben:

s := ' fKundenTableAuto := TKundenTableAuto.Create(fKundenTable);'





 

Bewerten Sie diesen Tipp:

dürftig
ausgezeichnet


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners