Differenze tra le versioni di "Accedere ai caratteri contenuti da una variabile di tipo stringa come se questa fosse una vettore"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "E' possibile accedere ai caratteri contenuti da una ordinaria variabile di tipo stringa, come se questa fosse un ''Oggetto'' vettore di caratteri. Pertanto, posta una variabi...")
 
 
(5 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
E' possibile accedere ai caratteri contenuti da una ordinaria variabile di tipo stringa, come se questa fosse un ''Oggetto'' vettore di caratteri.
 
E' possibile accedere ai caratteri contenuti da una ordinaria variabile di tipo stringa, come se questa fosse un ''Oggetto'' vettore di caratteri.
  
Pertanto, posta una variabile di tipo "''String''" avremo:
+
Pertanto, posta una variabile di tipo "String" avremo:
* variabile[n] restituisce il n-esimo carattere della stringa. E' necessario ricordare che in questo caso, diversamente dalle funzioni native per la gestione delle stringhe, l'indice comincia da zero (come per gli array).
+
* variabile[n] restituisce il n-esimo carattere della stringa. E' necessario ricordare che in questo caso, diversamente dalle funzioni native per la gestione delle stringhe, <SPAN Style="text-decoration:underline">l'indice comincia da zero</span> (come per gli array).
* variabile[x, n] è equivalente a ''Mid(variabile, x + 1, n)'': restituisce n caratteri dalla posizione x, 0 è la prima posizione. Se n è negativo, vengono restituiti tutti i caratteri dalla posizione X, tranne gli ultimi n caratteri.
+
* variabile[x, n] è equivalente a "Mid(variabile, x + 1, n)": restituisce n caratteri dalla posizione x; 0 è la prima posizione (come nel caso precedente). Se n è negativo, vengono restituiti tutti i caratteri dalla posizione X, tranne gli ultimi n caratteri.
 
* variabile.Len restituisce la lunghezza della stringa (ossia la quantità di valori ASCII contenuti nella stringa) senza tenere però conto delle lettere ''localizzate'' in UTF-8.
 
* variabile.Len restituisce la lunghezza della stringa (ossia la quantità di valori ASCII contenuti nella stringa) senza tenere però conto delle lettere ''localizzate'' in UTF-8.
  
Riga 18: Riga 18:
 
    
 
    
 
  '''End'''
 
  '''End'''
 +
 +
Va, però precisato che questa modalità d'uso di una variabile di tipo "String" consente la lettura, ma <SPAN Style="text-decoration:underline">non</span> la scrittura di valori, ossia l'assegnazione di caratteri.
 +
<BR>Pertanto la seguente istruzione non è valida:
 +
Dim variabile As String
 +
 +
variabile = "abc"
 +
 +
variabile[1] = "a"  <FONT Color=#B22222><B>Assegnazione non valida ! Non è un array !</b></font>
 +
 +
 +
====Usando un valore negativo nel secondo campo====
 +
Come già detto sopra, se nel secondo campo viene inserito un numero negativo, allora la variabile restituirà la stringa, in essa contenuta, a partire dall'indice, indicato nel primo campo, meno il numero degli ultimi caratteri, indicato nel secondo campo.
 +
 +
Esempio:
 +
'''Public''' Sub Main()
 +
 
 +
  Dim s As String = "abcde\nfghi"
 +
 
 +
  s = s[2, -2]
 +
 
 +
  Print s
 +
 
 +
'''End'''
 +
 +
 +
 +
=Riferimenti=
 +
* https://gitlab.com/gambas/gambas/commit/737b77c3870be38c1a057840ac8784d8e6b72481
 +
* https://lists.gambas-basic.org/pipermail/user/2018-September/065515.html
 +
* https://lists.gambas-basic.org/pipermail/user/2020-February/068636.html

Versione attuale delle 17:01, 16 set 2022

E' possibile accedere ai caratteri contenuti da una ordinaria variabile di tipo stringa, come se questa fosse un Oggetto vettore di caratteri.

Pertanto, posta una variabile di tipo "String" avremo:

  • variabile[n] restituisce il n-esimo carattere della stringa. E' necessario ricordare che in questo caso, diversamente dalle funzioni native per la gestione delle stringhe, l'indice comincia da zero (come per gli array).
  • variabile[x, n] è equivalente a "Mid(variabile, x + 1, n)": restituisce n caratteri dalla posizione x; 0 è la prima posizione (come nel caso precedente). Se n è negativo, vengono restituiti tutti i caratteri dalla posizione X, tranne gli ultimi n caratteri.
  • variabile.Len restituisce la lunghezza della stringa (ossia la quantità di valori ASCII contenuti nella stringa) senza tenere però conto delle lettere localizzate in UTF-8.

Esempio pratico:

Public Sub Main()
 
 Dim s As String
 
 s = "abcdefg"
   
 Print s[1]
 Print s[1, 3]
 Print s.Len
  
End

Va, però precisato che questa modalità d'uso di una variabile di tipo "String" consente la lettura, ma non la scrittura di valori, ossia l'assegnazione di caratteri.
Pertanto la seguente istruzione non è valida:

Dim variabile As String

variabile = "abc"

variabile[1] = "a"   Assegnazione non valida ! Non è un array !


Usando un valore negativo nel secondo campo

Come già detto sopra, se nel secondo campo viene inserito un numero negativo, allora la variabile restituirà la stringa, in essa contenuta, a partire dall'indice, indicato nel primo campo, meno il numero degli ultimi caratteri, indicato nel secondo campo.

Esempio:

Public Sub Main()
 
 Dim s As String = "abcde\nfghi"
 
 s = s[2, -2]
 
 Print s
  
End


Riferimenti