AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zahl in Worten ausgeben

Ein Thema von blondervolker · begonnen am 11. Jun 2013 · letzter Beitrag vom 13. Jun 2013
Antwort Antwort
Mathematiker
(Gast)

n/a Beiträge
 
#1

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 15:30
Hallo,
so geht es:
Delphi-Quellcode:
var zahl:tbignum;
    zahlstring:string;
    i:integer;
begin
    zahlstring:='12345678901234567890'; // zum Beispiel
    setlength(zahl,length(zahlstring));
    for i:=1 to length(zahlstring) do
      zahl[i-1]:=ord(zahlstring[i])-48;
    listbox1.items:=BuildList(zahl,false,true); //irgendein tstrings
    setlength(zahl,0);
end;
Beste Grüße
Mathematiker
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 15:52
Hallo,
so geht es:
Delphi-Quellcode:
var zahl:tbignum;
    zahlstring:string;
    i:integer;
begin
    zahlstring:='12345678901234567890'; // zum Beispiel
    setlength(zahl,length(zahlstring));
    for i:=1 to length(zahlstring) do
      zahl[i-1]:=ord(zahlstring[i])-48;
    listbox1.items:=BuildList(zahl,false,true); //irgendein tstrings
    setlength(zahl,0);
end;
Naja bei der Variante fehlt aber noch die 890 zum Schluss als Wort(aber wahrscheinlich ist das Absicht, würde sich ja blöd anhören...). Es ist eher eine Semi-Wort Variante würde ich sagen. Und blondervolker hat nichts von einer Listendarstellung gesagt. Aber auch interessant.

Mfg

Geändert von Ginko (11. Jun 2013 um 16:00 Uhr)
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 16:15
Hier mal beide Versionen im Vergleich (Zahl: 12345678901234567890):

function BuildList...:
Code:
12 Trillionen
345 Billiarden
678 Billionen
901 Milliarden
234 Millionen
567 Tausend
890
function ConvertString...:
Code:
zwölf Trillionen dreihundertfünfundvierzig Billiarden sechshundertachtundsiebzig Billionen neunhunderteins Milliarden zweihundertvierunddreißig Millionen fünfhundertsiebenundsechzig Tausend achthundertneunzig
Weiß jemand wie man das null wegbekommt zB wenn man 1000 als Wort ausgibt:
Code:
ein Tausend null

Geändert von Ginko (11. Jun 2013 um 16:19 Uhr)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 16:36
Null ist ein Result von GetShortName. Denke mal daß man das '' setzen kann, kann es aber momentan nicht genau überblicken.

Edit: Besser am Ende der BuildList

Delphi-Quellcode:
    for I := Result.Count - 1 downto 0 do
      if Pos('null', Result[I]) > 0 then
        Result.Delete(I);

Geändert von Bjoerk (11. Jun 2013 um 16:44 Uhr) Grund: Edit
  Mit Zitat antworten Zitat
Benutzerbild von blondervolker
blondervolker

Registriert seit: 14. Sep 2010
Ort: Bei: Leeeiipzzhhh
381 Beiträge
 
Delphi XE2 Architect
 
#5

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 16:44
Ja erstmal DANKE!!!
Aber ich weiss jetzt genausoviel wie vorher.Ich hab`s noch nicht gefressen.
Kann vielleicht jemand dieses Beispiel deklarieren oder "umvögeln" mit Edit1,2 oder Button1 Klick als Wort oder Text anzeigen?
Da geht es eher in die Birne(jedenfalls in meine).
www.bewerbungsmaker.de
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 17:27
@Bjoerk ja stimmt so könnte man es machen.
Die Listenansicht wäre ja für große Zahlen auf jedenfall sinnvoller, man könnte sie auch mit der ConvertString Version kombinieren.

Aber zurück zum eigentlichen Problem, ich poste mal die ganze Unit (sollte so unter Delphi problemlos Compilieren), dann müsste es aber eigentlich klar sein, oder ich habe das Problem nicht verstanden...

Delphi-Quellcode:
unit Unit1;

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, NumUnit; //Wichtig ! NumUnit hier eifügen

type
  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
  EingabeAlsZiffer: String;
begin
  EingabeAlsZiffer:= Edit1.Text; //Einlesen der Zahl als Ziffer
  Edit2.Text:= ConvertString(EingabeAlsZiffer); //Konvertierung und Ausgabe der Ziffer als Wort in Edit2
end;

end.
Ich habe ein neues Projekt erstellt und die Datei NumUnit.pas aus deinem Anhang in den Ordner (des neuen Projektes) kopiert.

Geändert von Ginko (11. Jun 2013 um 17:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von blondervolker
blondervolker

Registriert seit: 14. Sep 2010
Ort: Bei: Leeeiipzzhhh
381 Beiträge
 
Delphi XE2 Architect
 
#7

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 18:21
Einwandfrei.Dankeschööööön!!!
www.bewerbungsmaker.de
  Mit Zitat antworten Zitat
Benutzerbild von blondervolker
blondervolker

Registriert seit: 14. Sep 2010
Ort: Bei: Leeeiipzzhhh
381 Beiträge
 
Delphi XE2 Architect
 
#8

AW: Zahl in Worten ausgeben

  Alt 12. Jun 2013, 21:45
Geht es auch mit Nachkommastellen?

30 von Hundert? usw.
www.bewerbungsmaker.de
  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 02:40 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