Autor Beitrag
RoyKeane
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Sa 06.01.07 17:15 
hi,
ich bin gerade mit einem programm beschäftig, das daten aus einem browsergame herausließt und allerhand berechnungen anstellt. wie auch immer. der übersichtlichkeit wegen wollte ich gerne meine zahlen, die ich ausgerechnet habe, mit punkten darstellen, da sie auch recht groß werden können. z.B.:

1000000000 in
1.000.000.000

hat da jemand ne idee wie man das anstellen könnte?
danke schon mal im vorraus...
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Sa 06.01.07 17:17 
Du schreibst dir einfach ne Funktion, die nach der 1 und dann nach jeder dritten Null einen Punkt einfügt.
Ich würde das über String-Routinen machen (z.B. Insert). Vielleicht gibt es aber noch einen eleganteren Weg. ;)

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Sa 06.01.07 17:39 
sowas hab ich schon mal gemacht, eine eigene Funktion:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
function Mit1000erTrennung(Argument: string; TrennChar: char): string;
var n,i: integer;
begin
  Result := Argument;
  n := Length(Result);
  if n > 3 then begin
    i := 0;
    While n > 0 do begin
      inc(i);
      if (i >= 3) and (n > 1) then begin
        Insert(TrennChar,Result,n);
        i := 0;  
      end;
      dec(n);
    end;
  end;
end;
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Sa 06.01.07 18:06 
Klar, könnte man machen, geht aber auch eleganter:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
  X: Extended;
begin
  X := 100000000;
  Label1.Caption := Format('%.0n', [X]);  // -> 100.000.000
end;

X muss ein Gleitkommatyp sein und die 0 gibt die Anzahl der Nachkommastellen an.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Sa 06.01.07 18:23 
Ach ja, aber ich check die Funktion Format immer noch nicht. Und leider auch nicht, wenn ich die Delphi-Hilfe dazu fünfmal durchlese :( vllt kann ich mich nicht richtig konzentrieren, aber ich glaube man müsste auch Beispiele sehen!
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Sa 06.01.07 18:38 
Gaaaanz einfach:
Format hat 2 Parameter: Format und Args.

Format ist ein String, der wie folgt aufgebaut wird:
%[Index][Ausrichtung][Mindestbreite][Genauigkeit]Typ

- Index = Führende Ziffer;
- Ob das Ergebenise links ausgerichtet sein soll;
- Wie viele Stellen der String bzw. die Zahl haben soll;
- Wie viele Nachkommastellen;
- Der Typ [Integer, Extended, ...]:
  • d: Integer
  • e: Wissenschaftlicher String
  • f: Festkommastring
  • g: Kürzester String [e oder f]
  • n: Wie F, mit Tausendertrennzeichen
  • m: Währungsstring
  • p: Pointer-String
  • s: String
  • x: Hexdezimalstring

Und dann eben noch die Variablen in Klammern [Variable1, 10, 'String'].


Beispiele:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
Format('%d', [1000]);        // -> '1000'
Format('%5d', [1000]);       // -> ' 1000'
Format('%m', [1000]);        // -> '1.000,00 €'
Format('%.2f', [1000,1000];  // -> '1000,10';
Format('Ich bin %d Jahre alt und heiße %s!', [16, 'GTA-Place']);

Bei Fragen, einfach fragen.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
RoyKeane Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Sa 06.01.07 18:48 
ok danke, damit funzt es :D