Strfmon (): differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 24: Riga 24:
     moneta = 1234.567
     moneta = 1234.567
      
      
     buf = Alloc(40)
     buf = Alloc(SizeOf(gb.Byte), 40)
    
    
     <FONT color=#B22222>strfmon</font>(buf, 40, "[%^=*#6n] [%=*#6i]", moneta, moneta)
     <FONT color=#B22222>strfmon</font>(buf, 40, "[%^=*#6n] [%=*#6i]", moneta, moneta)

Versione delle 12:12, 9 set 2018

La funzione della libreria di C

ssize_t strfmon (char *__restrict __s, size_t __maxsize, const char *__restrict __format, ...)

formatta un valore monetario secondo il sistema locale corrente.

La formattazione avviene mediante speciali carrateri di conversione che possono essere consultati nelle pagine WEB segnalate in fondo nel paragrafo Riferimenti.

Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:

Private Extern strfmon(__s As Pointer, __maxsize As Long, __format As String, v1 As ..., etc...) As Long In "libc:6"


Semplice esempio di uso in Gambas:

Library "libc:6"

' ssize_t strfmon (char *__restrict __s, size_t __maxsize, const char *__restrict __format, ...)
' Formatting a monetary value according to the current locale.
Private Extern strfmon(__s As Pointer, __maxsize As Long, __format As String, v1 As Float, v2 As Float) As Long


Public Sub Main()
 
 Dim buf As Pointer
 Dim moneta As Float
 
   moneta = 1234.567
   
   buf = Alloc(SizeOf(gb.Byte), 40)
 
   strfmon(buf, 40, "[%^=*#6n] [%=*#6i]", moneta, moneta)
   
   Print String@(buf)
   
   Free(buf)
   
End



Riferimenti