Conoscere le impostazioni per il separatore delle migliaia

Da Gambas-it.org - Wikipedia.
Versione del 8 giu 2024 alle 15:54 di Vuott (discussione | contributi) (Creata pagina con "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...")
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

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