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
Seite 1 von 3  1 23      
Benutzerbild von blondervolker
blondervolker

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

Zahl in Worten ausgeben

  Alt 11. Jun 2013, 15:47
Hallo,
habe eine Unit im Forum gefunden,die man "nur"mit einbinden muss.
Hab ich gemacht.Nur komme ich mit dem Code nicht klar.
Es sollen nur Zahlen eingegeben werden im Edit1 und Edit2 soll die Zahl
als Wort dagestellt werden.
Ich bekomm es einfach nicht hin.Hab das "Projekt" mal mit drangehangen.
Ich bin ein Laie und noch am üben.
Angehängte Dateien
Dateityp: rar ZahlinWorten.rar (1,59 MB, 52x aufgerufen)
www.bewerbungsmaker.de
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 16:01
Wenn ich den Code in der Unit richtig verstehe, musst du nur die
Delphi-Quellcode:
function GetShortName(Zahl: Integer; Tousand: Boolean;
    Last: Boolean = False): string;
aufrufen. Der Kommentar zur Function lautet:
Zitat:
(**
* Gibt den Zahlenname für Zahlen kleiner Tausend aus.
*
* Zahl - Die Zahl die konvertiert werden soll.
* Tousand - Wenn True, wird 1 als 'ein' ausgegeben, sonst als 'eine' (man
* sagt "eine Million/Milliarde", aber "ein Tausend").
*)
Du musst eben nur noch wissen, wann du als zweiten Parameter true und wann false übergibst.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 16:03
Und wenn ich es von eben kurz drüberschauen richtig in Erinnerung habe, wird gerade diese Funktion komischerweise nicht aus der Unit exportiert. Oben im interface-Teil fehlt also die Deklaration.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 16:09
Hmm da hast du Recht. Aber alle anderen Funktionen ergeben keinen wirklichen Sinn. Die "BuildList-Function" gibt nur TStrings zurück. Man müsste sich die Zahl also selbst zusammenesetzen. Meiner Meinung nach hat der "Codeschreiber" vergessen, diese Function aufzunehmen, sprich zu veröffentlichen. Ich würde sie einfach mal dazuschreiben (sie wird nämlich nur von der BuildList-Function aufgerufen) und diese mal ausführen und kucken was zurückgegeben wird.
  Mit Zitat antworten Zitat
Ginko

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

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 16:12
Delphi-Quellcode:
(**
* Konvertiert einen String mit der Zahl in Ziffern, in einen String mit der
* ausgeschrieben Zahl.
*
* Input - Die Zahl in Ziffern.
*)

function ConvertString(const Input: string): string; // Public
sollte die richtige Funktion sein. Steht auch im interface...

Delphi-Quellcode:
uses ... NumUnit ...;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  inputZif: String;
begin
  inputZif:= Edit1.Text;
  Edit2.Text:= ConvertString(inputZif);
end;
Klappt bei mir auch unter Lazarus, nur ab den Tausendern schreibt er noch null dazu komischerweise...

Mfg

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

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 16:16
total übersehen. Aber auch nur im Notepad (nichtmal Notepad++) angeschaut. Das ist dann kein Wunder.
ConvertString sieht zumindest vom Aufbau her ziemlich danach aus.
  Mit Zitat antworten Zitat
Ginko

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

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 16:22
Ja der Aufbau hat mich auch erst etwas verwirrt und ich dachte auch erst es wäre Short. Aber Short ist eigentlich eine Funktion von GetShortName.

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

n/a Beiträge
 
#8

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 16: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
 
#9

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 16: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 17:00 Uhr)
  Mit Zitat antworten Zitat
Ginko

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

AW: Zahl in Worten ausgeben

  Alt 11. Jun 2013, 17: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 17:19 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 22:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz