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...')
 
Riga 11: Riga 11:
 
  Private Extern g_string_new(init As String) As Pointer
 
  Private Extern g_string_new(init As String) As Pointer
 
   
 
   
  <FONT Color=gray>' ''g_string_overwrite (GString *string, gsize pos, const gchar *val)''
+
  <FONT Color=gray>' ''GString * g_string_overwrite (GString *string, gsize pos, const gchar *val)''
 
  ' ''Overwrites part of a string, lengthening it if necessary.''</font>
 
  ' ''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
 
  Private Extern g_string_overwrite(GString As Pointer, gpos As Integer, gval As String) As Pointer

Versione delle 05:06, 28 ott 2015

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 .

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"

' GString * g_string_new (const gchar *init)
' Creates a new GString, initialized with the given string.
Private Extern g_string_new(init As String) As Pointer

' GString * g_string_overwrite (GString *string, gsize pos, const gchar *val)
' Overwrites part of a string, lengthening it if necessary.
Private Extern g_string_overwrite(GString As Pointer, gpos As Integer, gval As String) As Pointer

' gchar * g_string_free (GString *string, gboolean free_segment)
' Frees the memory allocated for the GString.
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))
   
' Va in chiusura liberando memoria occupata precedentemente dai due "Puntatori" utilizzati:
  g_string_free(p2, True)
  g_string_free(p1, True)
 
End