Differenze tra le versioni di "Strfmon ()"
Da Gambas-it.org - Wikipedia.
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 11: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