Differenze tra le versioni di "Conoscere la valuta monetaria locale utilizzata dal sistema operativo"

Da Gambas-it.org - Wikipedia.
 
Riga 1: Riga 1:
 
Per conoscere quale tipo di valuta moneria usa il nostro sistema operativo, è possibile utilizzare almeno due modalità.
 
Per conoscere quale tipo di valuta moneria usa il nostro sistema operativo, è possibile utilizzare almeno due modalità.
 
  
 
===Uso delle sole risorse di Gambas===
 
===Uso delle sole risorse di Gambas===
 
Le risorse di Gambas consentono di conoscere in modo molto semplice quale tipo di valuta moneria usa il nostro sistema operativo:
 
Le risorse di Gambas consentono di conoscere in modo molto semplice quale tipo di valuta moneria usa il nostro sistema operativo:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Print "Moneta:            "; Format(0, "$$#")
 
   Print "Moneta:            "; Format(0, "$$#")
 
   Print "Simbolo monetario: "; Format(0, "$#")
 
   Print "Simbolo monetario: "; Format(0, "$#")
 
    
 
    
  '''End'''
+
  End
 
 
 
 
 
Un'altra modalità (sempre utilizzando le sole risorse di Gambas) prevede che si vada ad individuare nella directory "''/usr/share/i18n/locales''" il file corrispondente al tipo di lingua impostata nel nostro sistema. Infatti i file presenti in detta directory sono contraddistinti da un nome simile a quello identificativo della lingua locale utilizzata.
 
Un'altra modalità (sempre utilizzando le sole risorse di Gambas) prevede che si vada ad individuare nella directory "''/usr/share/i18n/locales''" il file corrispondente al tipo di lingua impostata nel nostro sistema. Infatti i file presenti in detta directory sono contraddistinti da un nome simile a quello identificativo della lingua locale utilizzata.
 
<BR>Successivamente si dovrà andare a leggere il contenuto del file individuato ed interpretare i valore UNICODE presenti nelle righe che identificate con ''int_curr_symbol'' per la valuta monetaria, e ''currency_symbol'', per il simbolo della valuta.
 
<BR>Successivamente si dovrà andare a leggere il contenuto del file individuato ed interpretare i valore UNICODE presenti nelle righe che identificate con ''int_curr_symbol'' per la valuta monetaria, e ''currency_symbol'', per il simbolo della valuta.
  
 
Mostriamo di seguito un esempio:
 
Mostriamo di seguito un esempio:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
   Dim lingua, locales, arcloc, unicode, moneta As String
+
   Dim lingua, locales, arcloc, valuta As String
  Dim b As Byte
 
 
    
 
    
 
   locales = "/usr/share/i18n/locales"
 
   locales = "/usr/share/i18n/locales"
Riga 27: Riga 23:
 
   arcloc = File.load(locales &/ Dir(locales, lingua, gb.File)[0])
 
   arcloc = File.load(locales &/ Dir(locales, lingua, gb.File)[0])
 
      
 
      
   unicode = Scan(Replace(arcloc, " ", Null), "*int_curr_symbol\"<U*<U0020>*")[1]
+
   valuta = Scan(Replace(arcloc, " ", Null), "*int_curr_symbol*\n*")[1]
 
    
 
    
   For b = 1 To 18 Step 7
+
   Print "Valuta monetaria:  "; valuta
    moneta &= Chr(Val("&" & Mid(unicode, b, 4)))
+
 
  Next
+
  valuta = Scan(Replace(arcloc, " ", Null), "*currency_symbol*\n*")[1]
   
 
  Print "Valuta monetaria:  "; moneta
 
 
      
 
      
 +
  Print "Simbolo monetario: "; valuta
 
    
 
    
  unicode = Scan(Replace(arcloc, " ", Null), "*currency_symbol\"<U*>*")[1]
+
  End
   
 
  Print "Simbolo monetario: "; String.Chr(Val("&" & unicode))
 
 
 
  '''End'''
 
 
 
  
 
===Uso delle risorse della libreria ''Libc.so.6''===
 
===Uso delle risorse della libreria ''Libc.so.6''===
 
La seconda modalità prevede l'uso di alcune risorse della libreria ''Libc.so.6'' .
 
La seconda modalità prevede l'uso di alcune risorse della libreria ''Libc.so.6'' .
 
  
 
Mostriamo un possibile esempio:
 
Mostriamo un possibile esempio:
Riga 69: Riga 58:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
 
   Dim lc As Lconv
 
   Dim lc As Lconv
Riga 84: Riga 73:
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
  
  

Versione attuale delle 15:34, 8 giu 2024

Per conoscere quale tipo di valuta moneria usa il nostro sistema operativo, è possibile utilizzare almeno due modalità.

Uso delle sole risorse di Gambas

Le risorse di Gambas consentono di conoscere in modo molto semplice quale tipo di valuta moneria usa il nostro sistema operativo:

Public Sub Main()
 
 Print "Moneta:            "; Format(0, "$$#")
 Print "Simbolo monetario: "; Format(0, "$#")
  
End

Un'altra modalità (sempre utilizzando le sole risorse di Gambas) prevede che si vada ad individuare nella directory "/usr/share/i18n/locales" il file corrispondente al tipo di lingua impostata nel nostro sistema. Infatti i file presenti in detta directory sono contraddistinti da un nome simile a quello identificativo della lingua locale utilizzata.
Successivamente si dovrà andare a leggere il contenuto del file individuato ed interpretare i valore UNICODE presenti nelle righe che identificate con int_curr_symbol per la valuta monetaria, e currency_symbol, per il simbolo della valuta.

Mostriamo di seguito un esempio:

Public Sub Main()
  
 Dim lingua, locales, arcloc, valuta As String
 
 locales = "/usr/share/i18n/locales"
   
 lingua = Scan(System.Language, "*.*")[0]
 
 arcloc = File.load(locales &/ Dir(locales, lingua, gb.File)[0])
   
 valuta = Scan(Replace(arcloc, " ", Null), "*int_curr_symbol*\n*")[1]
  
 Print "Valuta monetaria:  "; valuta
 
 valuta = Scan(Replace(arcloc, " ", Null), "*currency_symbol*\n*")[1]
   
 Print "Simbolo monetario: "; valuta
  
End

Uso delle risorse della libreria Libc.so.6

La seconda modalità prevede l'uso di alcune risorse della libreria Libc.so.6 .

Mostriamo un possibile esempio:

Library "libc:6"

Public Struct Lconv
  decimal_point As Pointer
  thousands_sep As Pointer
  grouping As Pointer
  int_curr_symbol As Pointer
  currency_symbol As Pointer
End Struct

Private Const LC_MONETARY As Integer = 4

' 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 Lconv
 
' Specifichiamo la categoria e l'ambiente dell'impostazione locale per lingua:
 setlocale(LC_MONETARY, System.Language)
  
' Ritorna un Puntatore alla Struttura che dà informazioni sui simboli numerici secondo l'impostazione locale:
 lc = localeconv()
  
 With lc
   Print "Valuta monetaria: "; String@(.int_curr_symbol)
   Print "Simbolo monetario: "; String@(.currency_symbol)
 End With
  
End


Riferimenti

  • /usr/include/locale.h