![]() |
Format Strings mit festen String längen
Moin,
ich versuche gerade mithilfe einer alten DOS Formatvorlagen Datei mir FormatStrings zu basteln. Die alte Datei sieht so aus: 001\ \ Nr.: ######## 002\ \ Telefon: \ \ 003Fahrer Tournummer : ##### Datum: \ \ Leere Stellen zwischen zwei \ sind Platzhalter für Strings und # sind Platzhalter für Zahlen. das sieht dann so aus %-21s Rollkarten-Nr.: %8d %-42s Telefon: %-16s Fahrer Tournummer : %5d Datum: %-8s in der Delphi Hilfe steht zum Thema Formatstrings mit %s folgendes s String. Das Argument muss ein Zeichen, ein String oder ein PChar-Wert sein. Der String bzw. das Zeichen wird anstelle des Formatbezeichners eingefügt. Wenn im Format-String ein Genauigkeitsbezeichner angegeben ist, bestimmt er die maximale Länge des resultierenden Strings. Ist das Argument ein String, der diese Maximallänge überschreitet, wird der String abgeschnitten. Leider wird der Text aber nicht abgeschnitten... das führt zu ziemlichen Problemen. Hat jemand ne Idee, warum das so ist, oder, wie ich en Formatstring ändern kann, dass zu lange Texte abgeschnitten werden? lg |
AW: Format Strings mit festen String längen
Delphi-Quellcode:
Showmessage(Format('%.8s',['Ein langer String']) )
|
AW: Format Strings mit festen String längen
hey, danke.
mit so ner schnellen und direkten antwort hatte ich gar nich gerechnet :) seltsam ist jetzt nur, dass er mir die aber auch nicht mit leerzeichen auffüllt. also im grunde, wenn ich 22 zeichen sage, dann will ich auch genau 22 zeichen haben ;) is alles etwas vertrackt, weil die ausdrucke später eingescannt und automatisch verarbeitet werden ...... |
AW: Format Strings mit festen String längen
Delphi-Quellcode:
Showmessage('"' + Format('%-8.8s',['Ein']) + '"')
Showmessage('"' + Format('%8.8s',['Ein']) + '"') |
AW: Format Strings mit festen String längen
danke,
perfekt! |
AW: Format Strings mit festen String längen
oh man, ähnliches problem mit float ...
Format %2.1f ist immer linksbündig, %-2.1f aber auch, wie bekomme ich das Rechtsbündig? |
AW: Format Strings mit festen String längen
Zur Not 2 mal formatieren.
Delphi-Quellcode:
var
Zahl: double; begin Zahl := Pi; ShowMessage('"' + Format('%8.8s', [Format('%2.1f', [Zahl])]) + '"'); end; |
AW: Format Strings mit festen String längen
Zitat:
Delphi-Quellcode:
dann frage ich mich natürlich, wie man die Anzeige von
Format('%2.1f', [Zahl])
Delphi-Quellcode:
bewerkstelligen kann, wenn das nur 2 Zeichen breit sein darf. ;)
1.3
|
AW: Format Strings mit festen String längen
@DeddyH
Das Problem ist, dass ich pro Zeile nur einmal "Format" habe und dann u.U. 3-5 verschiedene Platzhalter, weshalb ich keine zwei Formatiereungen machen kann. @Sir Rufo ... ich ware igentlich davon ausgegangen, dass das jeweils die anzahl der vor und nachkommastellen angibt also ich will im Grunde Werte zwischen 0 und 99.9 so ausgegen: 1.3 7.1 39.4 45.0 99.8 |
AW: Format Strings mit festen String längen
Du willst doch im Grunde eine String-Formatierung haben, oder? Dann schreib Dir doch eine Funktion, die Dir das Gewünschte liefert und übergib der die vorformatierten Strings.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz