![]() |
Zahl in Worten ausgeben
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
habe eine Unit im Forum gefunden,die man "nur"mit einbinden muss. Hab ich gemacht.Nur komme ich mit dem Code nicht klar.:oops: 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. |
AW: Zahl in Worten ausgeben
Wenn ich den Code in der Unit richtig verstehe, musst du nur die
Delphi-Quellcode:
aufrufen. Der Kommentar zur Function lautet:
function GetShortName(Zahl: Integer; Tousand: Boolean;
Last: Boolean = False): string; Zitat:
|
AW: Zahl in Worten ausgeben
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.
|
AW: Zahl in Worten ausgeben
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.
|
AW: Zahl in Worten ausgeben
Delphi-Quellcode:
sollte die richtige Funktion sein. Steht auch im interface...
(**
* 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
Delphi-Quellcode:
Klappt bei mir auch unter Lazarus, nur ab den Tausendern schreibt er noch null dazu komischerweise...
uses ... NumUnit ...;
procedure TForm1.Button1Click(Sender: TObject); var inputZif: String; begin inputZif:= Edit1.Text; Edit2.Text:= ConvertString(inputZif); end; Mfg |
AW: Zahl in Worten ausgeben
:oops: total übersehen. Aber auch nur im Notepad (nichtmal Notepad++) angeschaut. Das ist dann kein Wunder.
ConvertString sieht zumindest vom Aufbau her ziemlich danach aus. |
AW: Zahl in Worten ausgeben
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.
|
AW: Zahl in Worten ausgeben
Hallo,
so geht es:
Delphi-Quellcode:
Beste Grüße
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; Mathematiker |
AW: Zahl in Worten ausgeben
Zitat:
Mfg |
AW: Zahl in Worten ausgeben
Hier mal beide Versionen im Vergleich (Zahl: 12345678901234567890):
function BuildList...:
Code:
function ConvertString...:
12 Trillionen
345 Billiarden 678 Billionen 901 Milliarden 234 Millionen 567 Tausend 890
Code:
Weiß jemand wie man das null wegbekommt zB wenn man 1000 als Wort ausgibt:
zwölf Trillionen dreihundertfünfundvierzig Billiarden sechshundertachtundsiebzig Billionen neunhunderteins Milliarden zweihundertvierunddreißig Millionen fünfhundertsiebenundsechzig Tausend achthundertneunzig
Code:
ein Tausend null
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 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