Conoscere le impostazioni per il separatore delle migliaia

Da Gambas-it.org - Wikipedia.

Per poter conoscere da codice le impostazioni di sistema per il separatore delle migliaia, si potranno utilizzare almeno un paio di modalità.

Leggendo dal file di sistema /usr/share/i18n/locales/......

Public Sub Main()
 
 Dim locales, sep, arcloc, sep As String

 locales = "/usr/share/i18n/locales"
  
 lingua = Scan(System.Language, "*.*")[0]

 arcloc = File.load(locales &/ Dir(locales, lingua, gb.File)[0])
  
 sep = Scan(Replace(arcloc, " ", Null), "*thousands_sep*\n*")[1]
  
 Print "Separatore delle migliaia:  "; sep
  
End


Usando alcune specifiche funzioni esterne della libreria di sistema /usr/include/locale.h

Library "libc:6"

Public Struct Lconv
  decimal_point As Pointer
  thousands_sep As Pointer
End Struct

Private Const LC_NUMERIC As Integer = 1

' char *setlocale (int __category, const char *__locale)
' Set and/or return the current locale.
Private Extern setlocale(category As Integer, locale As String) As Pointer

' struct lconv *localeconv(void)
' Return the numeric/monetary information for the current locale.
Private Extern localeconv() As Lconv


Public Sub Main()

 Dim lc As New Lconv

' Specifica la categoria e l'ambiente dell'impostazione locale per lingua:
 setlocale(LC_NUMERIC, System.Language)

' Ritorna un Puntatore alla Struttura che dà informazioni sui simboli numerici secondo l'impostazione locale:
 lc = localeconv()

 Print "Separatore migliaia:  "; String@(lc.thousands_sep)

End


Riferimenti