| Autor | Beitrag | 
| Henry 
          Beiträge: 619
 
 WinXP Prof. SP3
 D6 Prof.
 
 | 
Verfasst: Di 10.06.03 19:02 
 
Hallo,
 habe da ein kleines Problem mit der Formatierung eine Reavariablel in einen String
 Ich formatiere mir meine Realvariable wie folgt:
 		                       Delphi-Quelltext 
 Soweit auch in Ordnung. Es funktioniert.
 Nun möchte ich aber das mir meine Realvariable in einen String Formatiert wird mit drei Stellen vor dem Komma und einer nach dem Komma (wie ich es ja auch formatiert habe) allerdings mit einer Vornoll wenn das ergebnis der Realvariablen nur zwei oder einstellig ist. Brauche nämlich auf jeden Fall füllende Vornullen.
 Wie kann ich das lösen? Dagiebt es doch bestimmt so eine Funktion wie ich sie verwendet habe, oder?
 Danke schon einmal im voraus.
 Edit: Habe den Titel umbenannt (siehe Hinweis Luckie) und den Text angepasst Hatte mich vorher geirrt und Integer geschrieben_________________ mfg Henry
 
 Zuletzt bearbeitet von Henry am Mi 11.06.03 05:39, insgesamt 1-mal bearbeitet
 | 
|  | 
| Tweafis 
          Beiträge: 647
 
 WinXP + fbsd
 Delphi 5 Prof
 
 | 
Verfasst: Di 10.06.03 19:06 
 
		                       Delphi-Quelltext 
 									| 1:2:
 
 | if kmh<100 then Tempo := '0'+Tempo;if kmh<10 then Tempo := '0'+Tempo;
 |  So würde ich es jetzt auf die schnelle machen. Guck gleich nochmal wegen Format..._________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
 | 
|  | 
| Luckie Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Di 10.06.03 19:17 
 
Ein Integer hat keine Nachkommastellen und was nicht da ist, kann man nicht formatieren. So einfach ist das. | 
|  | 
| Tweafis 
          Beiträge: 647
 
 WinXP + fbsd
 Delphi 5 Prof
 
 | 
Verfasst: Di 10.06.03 19:20 
 
_________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
 | 
|  | 
| Henry  
          Beiträge: 619
 
 WinXP Prof. SP3
 D6 Prof.
 
 | 
Verfasst: Mi 11.06.03 05:34 
 
@Luckie: Sorry, hast natürlich recht, Integer hat keine Nachkommastellen     Die Variable ist natürlich vom Typ Real, hatte da was durcheinandergebraxht.
 @Tweafis: werde ich mir mal zu gemüte führen, danke erstmal._________________ mfg Henry
 | 
|  | 
| Tweafis 
          Beiträge: 647
 
 WinXP + fbsd
 Delphi 5 Prof
 
 | 
Verfasst: Mi 11.06.03 06:23 
 
Ich hab das mit den Formatsstrings einfach mal so aus der Hilfe zusammeneschustert.
ich weiß jetzt nicht:
 
 a) ob es f,g oder n ist (der Formatbuchstabe)
 b) Wie das mit den Nullen ist (wird das ',' als stelle gerechnet?)
 _________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
 | 
|  | 
| maxk 
          Beiträge: 1696
 Erhaltene Danke: 1
 
 Win XP, Debian Lenny
 Delphi 6 Personal
 
 | 
Verfasst: Mi 11.06.03 06:45 
 
		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 
 | function Nullen(Str:string;MaxZeichen:integer):string;begin
 Result:=StringOfChar('0',MaxZeichen-Length(Str))+Str;
 end;
 |  Damit klappen die Nullen!_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
 | 
|  | 
| Henry  
          Beiträge: 619
 
 WinXP Prof. SP3
 D6 Prof.
 
 | 
Verfasst: Mi 11.06.03 17:26 
 
Danke euch erstmal allen.
 Die erste Version von Tweafis hat erstmal funktioniert.
 Werde aber mal die von maxk auch noch probieren.
 
 Was mir noch lieber wäre, ist eine Funktion (wie z.B. ich si oben angegeben hatte) die das gleich alles mit einmal macht. Also wenn ich angebe 5 Stellen vor dem Komma dann sollte sie den rst mit Vornullen direkt aufführen odhne das man noch eine andere Funktion zusätzlich braucht.
 Aber das scheint es nicht wirklich zu geben.
 
 Aber ich habe ja jetzt funktionierende Möglichkeiten.
 _________________ mfg Henry
 | 
|  | 
| Wolff68 
          Beiträge: 302
 Erhaltene Danke: 1
 
 WinXP home
 D6 Prof
 
 | 
Verfasst: Do 12.06.03 22:08 
 
Hab mal versucht das ganze als einen Befehl hinzubekommen.
 (OK, indirekt sind es schon mehrere)
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 
 | procedure TForm1.Button1Click(Sender: TObject);var
 digits, precision : Integer;
 begin
 digits := 5;   precision := 3;
 Edit1.Text := Format('%0.'+IntToStr(digits)+'d', [Trunc(x)])                +Copy(FloatToStrF(Frac(x),ffFixed,15,13)
 ,Pos(decimalseparator,FloatToStrF(Frac(x),ffFixed,15,13))
 ,precision+1); end;
 |  X ist hier ein Real-Wert.
 Probleme könnten bei Digit-Überschreitungen auftreten, oder wenn der Nachkommateil in das Wissenschaftliche Format umbricht._________________ "Der Mensch ist nicht was er sich vorstellt oder wünscht zu sein, sondern das was andere in ihm sehen."
 | 
|  | 
| Henry  
          Beiträge: 619
 
 WinXP Prof. SP3
 D6 Prof.
 
 | 
Verfasst: Fr 13.06.03 17:10 
 
Danke, werde ich mich mal mit befassen. _________________ mfg Henry
 | 
|  |