Associare una stringa a un identificatore unico numerico mediante le funzioni Quarks del API di libglib-2.0

Da Gambas-it.org - Wikipedia.
Versione del 17 gen 2018 alle 18:42 di Vuott (Discussione | contributi) (Creata pagina con "Le funzioni esterne "Quarks" della libreria di ''Glib-2.0'' consentono di associare una stringa a un identificatore unico numerico. E' necessario avere installata nel sistema...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Le funzioni esterne "Quarks" della libreria di Glib-2.0 consentono di associare una stringa a un identificatore unico numerico.

E' necessario avere installata nel sistema e richiamare in Gambas la libreria dinamica condivisa: "libglib-2.0.so"

In particolare:

  • la funzione "g_quark_from_string( )" attribuisce un numero unico identificativo a una determinata stringa;
  • la funzione "g_quark_to_string( )" restituisce dal numero la stringa a esso associata;
  • la funzione "g_quark_try_string( )" restituisce il numero associato a una determinata stringa.


Mostriamo di seguito un semplice esempio pratico:

Library "libglib-2.0"

' GQuark g_quark_from_string (const gchar *string)
' Gets the GQuark identifying the given string
Private Extern g_quark_from_string(gstring As String) As Integer

' const gchar * g_quark_to_string (GQuark quark)
' Gets the string associated with the given GQuark.
Private Extern g_quark_to_string(quark As Integer) As String

' GQuark g_quark_try_string (const gchar *string)
' Gets the GQuark associated with the given string, or 0 if string is NULL or it has no associated GQuark.
Private Extern g_quark_try_string(gstring As String) As Integer


Public Sub Main()

 Dim s1, s2 As String
 Dim qrk As Integer
  
  s1 = "xxxxxxxxxxxxxxxx"
  qrk = g_quark_from_string(s1)
  Print qrk
  Print g_quark_to_string(qrk)
  
  Print
  
  s2 = "zzzzzzzzzzzzzzzz"
  qrk = g_quark_from_string(s2)
  Print qrk
  Print g_quark_to_string(qrk)
  
  Print
  
  Print g_quark_try_string(s1)
  Print g_quark_try_string(s2)
  
End


Riferimenti