1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76:
| function TForm1.BetragInWorten(Betrag: Currency): string; function GetGruppe(Gruppe: string): string; const zt1 : array[0..19] of string = ('null', 'eins', 'zwei', 'drei', 'vier', 'fünf', 'sechs', 'sieben', 'acht', 'neun', 'zehn', 'elf', 'zwölf', 'dreizehn', 'vierzehn', 'fünfzehn', 'sechzehn', 'siebzehn', 'achtzehn', 'neunzehn'); zt2 : array[2..9] of string = ('zwanzig', 'dreißig', 'vierzig', 'fünfzig', 'sechzig', 'siebzig', 'achtzig', 'neunzig'); var Hunderter, Zehner, Einer : string; wert : integer; begin Result := ''; wert := StrToInt(Gruppe[1]); if Wert > 0 then if Wert = 1 then Hunderter := 'einhundert' else Hunderter := zt1[wert] + 'hundert'; wert := StrToInt(Copy(Gruppe, 2, 2)); if (Wert >= 10) and (Wert < 20) then Einer := zt1[wert] else begin wert := StrToInt(Gruppe[2]); if Wert > 1 then Zehner := zt2[wert]; wert := StrToInt(Gruppe[3]); if Wert > 0 then begin if Zehner = '' then Einer := zt1[wert] else if Wert = 1 then Einer := 'einund' else Einer := zt1[wert] + 'und'; end; end; Result := Hunderter + Einer + Zehner; end;
const tp1 :array[1..3] of string = ('einemilliarde', 'einemillion', 'eintausen'); tp2 :array[1..3] of string = ('milliarden', 'millionen', 'tausend'); var bt, sz, grp : string; i : integer; begin Result := ''; bt := FormatFloat('000000000000', Trunc(Betrag)); sz := '';
for i := 1 to 4 do begin grp := Copy(bt, (i-1)*3+1, 3); if grp <> '000' then begin if i <> 4 then if grp = '001' then sz := sz + tp1[i] else sz := sz + GetGruppe(grp) + tp2[i] else sz := sz + GetGruppe(grp); end; end;
if Frac(Betrag) <> 0 then begin bt := FormatFloat('#0', Frac(Betrag) * 100); sz := sz + ' ' + bt + '/100'; end; Result := sz; end; |