Differenze tra le versioni di "Sovrascrivere una stringa con uno o più caratteri mediante le funzioni esterne del API di Libglib-2.0"

Da Gambas-it.org - Wikipedia.
(Creata pagina con 'E' possibile sovrascrivere una parte ben determinata di una stringa con uno o più caratteri, a cominciare da una specificata posizione, utilizzando alcune funzioni della libr...')
 
 
(10 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
E' possibile sovrascrivere una parte ben determinata di una stringa con uno o più caratteri, a cominciare da una specificata posizione, utilizzando alcune funzioni della libreria esterna ''libglib-2.0'' .
+
#REDIRECT [[Sovrascrivere_una_stringa_con_uno_o_più_caratteri#Uso_delle_funzioni_esterne_del_API_di_Libglib-2.0]]
 
 
Sarà necessario aver installato nel sistema e richiamare nell'applicazione Gambas la libreria: "''libglib-2.0.so''"
 
 
 
 
 
Mostriamo un esempio, nel quale verrà sovrascritta la parola "GAMBAS" su una stringa preesistente a partire dal 4° carattere della stringa medesima:
 
Library "libglib-2.0"
 
 
<FONT Color=gray>' ''GString * g_string_new (const gchar *init)''
 
' ''Creates a new GString, initialized with the given string.''</font>
 
Private Extern g_string_new(init As String) As Pointer
 
 
<FONT Color=gray>' ''g_string_overwrite (GString *string, gsize pos, const gchar *val)''
 
' ''Overwrites part of a string, lengthening it if necessary.''</font>
 
Private Extern g_string_overwrite(GString As Pointer, gpos As Integer, gval As String) As Pointer
 
 
<FONT Color=gray>' ''gchar * g_string_free (GString *string, gboolean free_segment)''
 
' ''Frees the memory allocated for the GString.''</font>
 
Private Extern g_string_free(GString As Pointer, free_segment As Boolean) As String
 
 
 
'''Public''' Sub Main()
 
 
  Dim s As String
 
  Dim p1, p2 As Pointer
 
 
 
  s = "abcde fghilm nopqrstuvz"
 
 
 
  p1 = g_string_new(s)
 
     
 
  p2 = g_string_overwrite(p1, 4, "GAMBAS")
 
   
 
  Print String@(Pointer@(p2))
 
   
 
<FONT Color=gray>' ''Va in chiusura liberando memoria occupata precedentemente dai due "Puntatori" utilizzati:''</font>
 
  g_string_free(p2, True)
 
  g_string_free(p1, True)
 
 
 
'''End'''
 

Versione attuale delle 02:11, 10 set 2019