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.
Riga 4: Riga 4:
  
  
Mostriamo un esempio, nel quale verrà sovrascritta la parola "GAMBAS" su una stringa preesistente a partire dal 5° carattere (num. indice 4) della stringa medesima:
+
Mostriamo un esempio, nel quale una stringa preesistente verrà sovrascritta con la parola "GAMBAS" a partire dal 5° carattere (num. indice 4) della stringa medesima:
 
  Library "libglib-2.0"
 
  Library "libglib-2.0"
 
   
 
   
Riga 30: Riga 30:
 
        
 
        
 
   p2 = g_string_overwrite(p1, 4, "GAMBAS")
 
   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'''
 +
 +
 +
====Sovrascrivere con una determinata quantità di caratteri di una stringa====
 +
E' anche possibile sovrascrivere una stringa originaria con un numero determinato di caratteri, iniziando da sinistra, facendit parte di un'altra stringa.
 +
 +
Mostriamo un esempio, nel quale una stringa verrà sovrascritta a partire dalla posizione di indice 6 con i soli primi tre caratteri della stringa "GAMBAS":
 +
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>' ''GString * g_string_overwrite_len (GString *string, gsize pos, const gchar *val, len As Long)''
 +
' ''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_len(p1, 6, "GAMBAS", 3)
 
      
 
      
 
   Print String@(Pointer@(p2))
 
   Print String@(Pointer@(p2))

Versione delle 05:25, 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 una stringa preesistente verrà sovrascritta con la parola "GAMBAS" a partire dal 5° carattere (num. indice 4) 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


Sovrascrivere con una determinata quantità di caratteri di una stringa

E' anche possibile sovrascrivere una stringa originaria con un numero determinato di caratteri, iniziando da sinistra, facendit parte di un'altra stringa.

Mostriamo un esempio, nel quale una stringa verrà sovrascritta a partire dalla posizione di indice 6 con i soli primi tre caratteri della stringa "GAMBAS":

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_len (GString *string, gsize pos, const gchar *val, len As Long)
' 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_len(p1, 6, "GAMBAS", 3)
   
  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