Titolo: Numeri a lettere
Categoria: Codice |
|
Ultimo Aggiornamento: 09/12/18 |
Ritorna il numero in formato lettera come ad esempio per gli assegni bancari :
1234,56 = MilleDuecentoTrentaQuattro//56
C_TEXT($result;$risultato;$intero)
// il dato passato รจ un numero double che devo trasformare in un formato italiano
$intero:=String($1;"###########0.00")
// $intero:=$1 // importo in lettere
C_TEXT($resto)
C_LONGINT($lungo)
$lungo:=Length($intero)
C_LONGINT($decimale)
$decimale:=Position(",";$intero)
$resto:="/"+tright ($intero;2)
$intero:=tleft ($intero;$decimale-1)
C_TEXT($verifica)
$verifica:=Substring($intero;1;1)
If ($verifica="-")
$intero=Mid(intero, 2)
End if If ($1=0)
$0="zero/00"
End if C_LONGINT($mille)
$mille:=-1
C_LONGINT($k)
$k:=Mod(Length($intero);3)
If ($k#0)
$intero=
Repeate (3-$k,"0")+$intero
End if While ($intero#"")
$mille:=$mille+1
C_TEXT($parziale;$tripla;$s)
C_LONGINT($tv;$td; $tc)
C_LONGINT($x;$y)
$tripla:=tright ($intero;3)
$intero:=tleft ($intero;Length($intero)-3)
$tv:=Num($tripla)
$td:=Mod($tv;100)
$tc:=($tv-$td)/100
If (Not($tc=0)
$parziale:="cento"
If ($tc>1)
$parziale:=unita ($tc)+$parziale
End if End if If ($td<20)
$parziale:=$parziale+unita ($td)
Else $x:=Mod($td;10)
$y:=($td-$x)/10
$parziale:=$parziale+decine ($y)
$s:=unita ($x)
$primoc:=tleft ($s;1)
$instr:=Position($primoc;"uo";1)
If ($instr#0)
If ($s#"")
If (Not$y=0)
$parziale:=tleft ($parziale;Length($parziale-1))
End if End if End if $parziale:=$parziale+$s
End if $s:=migliaia ($mille)
If ($mille>0)
If ($parziale#"")
$k:=$mille
If ($parziale#"uno")
$k:=$k+4
$s:=migliaia ($k)
$ddestra:=tright ($parziale;3)
If ($ddestra="uno")
$parziale:=tleft ($parziale;Length($parziale)-1)
End if Else $parziale:=""
End if $parziale:=$parziale+$s
End if End if $result:=$parziale+$result
End while If ($1<0)
$result="meno"+$result
End if $0:=$result+$resto
E di seguito le varie altre funzioni utilizzate :
---
Repeate ---
C_TEXT($testo)
C_LONGINT($contatore)
For ($contatore;1;$1)
$testo:=$testo+$2
End for $0:=$testo
--- unita ---
C_COLLECTION($lettere)
C_TEXT($risultato)
$lettere:=Split string(",uno,due,tre,quattro,cinque,sei,sette,otto,nove,dieci,undici,dodici,tredici,quattordici,quindici,sedici,diciassette,diciotto,diciannove";",")
C_LONGINT($lunghezza)
$lunghezza:=$lettere.length
If ($1<0)
$risultato:=""
Else If ($1>$lunghezza)
$risultato:=""
Else $risultato:=$Lettere[$1]
End if End if $0:=$risultato
--- migliaia ---
C_COLLECTION($lettere)
C_TEXT($risultato)
$lettere:=Split string(",mille,unmilione,unmiliardo,millemiliardi,mila,milioni,miliardi,milamiliardi,milamiliardi,migliaiadimiliardi";",")
C_LONGINT($lunghezza)
$lunghezza:=$lettere.length
If ($1<0)
$risultato:=""
Else If ($1>$lunghezza)
$risultato:=""
Else $risultato:=$Lettere[$1]
End if End if $0:=$risultato
--- isnumeric ---
If (Undefined($1))
$0=
FalseEnd if $lettera:=$1
$numero:=Num($lettera)
$letteranunero:=String($numero)
If (Substring($lettera;1;1)="0")
$letteranunero:="0"+$letteranunero
End if If (Length($lettera)=Length($letteranunero)
$0:=
TrueElse $0:=
FalseEnd if --- decine ----
C_COLLECTION($lettere)
C_TEXT($risultato)
C_LONGINT($lunghezza)
$lettere:=Split string(",dieci,venti,trenta,quaranta,cinquanta,sessanta,settanta,ottanta,novanta";",")
$lunghezza:=$lettere.length
If ($1<0)
$risultato:=""
Else If ($1>$lunghezza)
$risultato:=""
Else $risultato:=$Lettere[$1]
End if End if $0:=$risultato
--- tleft ----
// $1=testo
// $2=lunghezza
// $0=testo left
If ($2=0)
$0:=""
End if C_LONGINT($lungo)
$lungo:=Length($1)
If ($lungo=0)
$0:=""
End if $0:=Substring($1;1;$2)
--- tright ---
// $1=testo
// $2=lunghezza
// $0=testo right
If ($2=0)
$0:=""
End if $lunghezza:=Length($1)
If ($lunghezza=0)
$0:=""
End if $lunghezza:=Length($1)
$0:=Substring($1;$lunghezza-$2+1;$2)
Inviato da: Massimiliano Chiodi |
|
Visite: 6708 |
Se accedi con utente e password, puoi aggiungere dei commenti.