AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Delphi Integer in String(in Worten) konvertieren
Thema durchsuchen
Ansicht
Themen-Optionen

Integer in String(in Worten) konvertieren

Ein Thema von delphi10 · begonnen am 24. Nov 2008 · letzter Beitrag vom 9. Mai 2009
Antwort Antwort
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#1

Re: Integer in String(in Worten) konvertieren

  Alt 9. Mai 2009, 20:07
War mal so frei die Änderungswünsche einzubauen und Zahlen unter Null zu unterstützen.

Delphi-Quellcode:
function IntToText(n: integer; firstCall: boolean {$IFDEF DELPHI4_UP} = true {$ENDIF}): string;
const
  Einer: array[0..12] of string = ('', 'ein', 'zwei', 'drei', 'vier', 'fünf',
                    'sechs', 'sieben', 'acht', 'neun', 'zehn', 'elf', 'zwölf');
  Zehner: array[1..9] of string = ('zehn', 'zwanzig', 'dreißig', 'vierzig',
  'fünfzig', 'sechzig', 'siebzig', 'achtzig', 'neunzig');
var
  s: string;
begin
  case n of
  low(integer)..-1:
    Result := 'minus ' + IntToText(-n, true);
  0:
    if firstCall then Result := 'nullelse Result:= '';
  1:
    Result:= 'eins';
  2..12:
    Result:= Einer[n];
  13..15:
    Result:= Einer[n mod 10] + 'zehn';
  16:
    Result := 'sechzehn';
  17:
    Result:= 'siebzehn';
  18..19:
    Result:= Einer[n mod 10] + 'zehn';
  20..99:
    begin
      s:= Einer[n mod 10];
      if n Mod 10 > 0 then s:= s + 'und';
      Result:= s + Zehner[n div 10];
    end;
  100..999:
    Result:= Einer[n div 100] + 'hundert' + IntToText(n mod 100, false);
  1000..999999:
    Result:= IntToText(n div 1000, false) + 'tausend' + IntToText(n mod 1000, false);
  1000000..1000999:
    Result:= 'einemillion' + IntToText(n mod 1000000, false);
  2000000..999999999:
    Result:= IntToText(n div 1000000, false) + 'millionen' + IntToText(n mod 1000000, false);
  1000000000..1999999999:
    Result:= 'einemilliarde' + IntToText(n mod 1000000000, false);
  else
    Result:= 'zweimilliarden' + IntToText(n mod 1000000000, false);
  end;
end;
MfG,
Bug

EDIT1: (meinen) Fehler berichtigt
EDIT2: Hab "sechszehn" im Code dringehabt
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 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