|
|
(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'''
| |