Sviluppo4d.it
Sito indipendente di informazioni tecniche per sviluppatori 4th Dimension italiani  

Sviluppatori 4D

Utility 4D

Risorse 4D



4d logo
Naviga: Prev Next

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=False
End 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:=True
Else
$0:=False
End 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: 6315

Se accedi con utente e password, puoi aggiungere dei commenti.


Accesso

User:
Pass: Accedi

Cerca

Se non trovi le informazioni che cerchi scrivi a aiuto@sviluppo4d.it

4D Principali

4D Discussioni

Faq random


Crediti

Dominio registrato da ZetaNet
Sito realizzato da Nexus srl
4D SQL 11.9.0 offerto da 4D & Italsoftware
Icone di FAMFAMFAM
Moderato da Umberto Migliore
307 utenti registrati

Pagina servita il 20/04/24 alle 10:04:05 Valid HTML 4.01! Valid CSS!

Mutuo Facile, iDigitalScout, iDigitalTags e altre app di Nexid srl per iPhone e iPad

Cidroid, distributore italiano lettori barcode per IOS Apple iPhone, iPod, iPad