Corsi on-line

Gestione delle stringhe

  • CommentiScrivi un commento
  • ForumDiscuti sul forum
  • PrevFunzioni e Sub
  • NextGestione delle date

Sia questo che il prossimo capitolo entrano nel dettaglio del codice VB per imparare a gestire due elementi fondamentali per qualsiasi linguaggio di programmazione: la manipolazione delle stringhe e la gestione delle date.

Iniziamo con le stringhe.

L'articolo continua dopo la pubblicità

VB dispone di una nutrita schiera di interessanti Funzioni per la manipolazione delle stringhe: capita in moltissimi programmi di dover sostituire determinati caratteri in una stringa, di dividere una stringa in più stringhe in base ad un determinato criterio, di controllare la lunghezza di una stringa, di farci restituire solo parte di una stringa, e tante altre esigenze che devono essere soddisfatte.

Iniziamo con la Funzione Replace() che serve a sostituire caratteri all'interno di una stringa. Come vedremo più avanti parlando dei database, è importante, sia in fase di inserimento dei dati che in lettura, controllare che non ci siano all'interno di una stringa dei singoli apici... capita però che quegli apici siano lì nella stringa ad uno scopo: se ho un utente che si chiama D'Alessio non posso cambiargli il nome in DAlessio... insomma, non sono mica il responsabile dell'anagrafe! Posso però sostituire il singolo apice con due singoli apici in modo da non dar fastidio al database e far comparire comunque l'apice lì dove serve. La sintassi per una simile operazione è la seguente:

Replace("D'Alessio", "'", "''")
In pratica Replace() accetta i seguenti parametri:
Replace(stringa, carattere da sostituire, carattere sostitutivo)
Se ad esempio in una frase voglio sostituire un nome userò la Funzione Replace() come segue:
Replace("Pippo è un personaggio Disney", "Pippo", "Pluto")
ed eseguendolo con un Debug.Print
Debug.Print Replace("Pippo ...
riceverò la frase Pluto è un personaggio Disney.

Passiamo alla Funzione Split(). Split() divide una stringa in un Array (Rif. capitolo 7) di stringa; prendiamo la seguente stringa:

Luca#Ruggiero#Napoli
ho una serie di dati quali nome, cognome e città di appartenenza, ma in una forma irregolare e teoricamente illeggibile e scorretta grammaticalmente. Il carattere cancelletto (#) presente nella stringa mi consente di avere un utile riferimento per dividere la stringa come meglio conviene.

Si crei un nuovo EXE standard, si inserisca sulla Form una Label di nome lblSplit e si acceda alla Sub Form_Load(); nella parte generale si inserisca il seguente codice:

Option Explicit
Dim stringa As String
Dim s() As String
Dim i As Integer
dove s() è una stringa di tipo Array che utilizzerò per lo Split().

Nella Sub, invece, si inserisca il seguente codice:

Private Sub Form_Load()
    i = 0
    stringa = "Luca#Ruggiero#Napoli"
    s = Split(stringa, "#")
    For i = 0 To UBound(s)
        lblSplit.Caption = lblSplit.Caption & s(i) & vbCrLf
    Next
End Sub
Utilizzando la sintassi
Split(stringa, carattere di riferimento)
otterrò in output sulla Label
Luca
Ruggiero
Napoli
Ricordo che, come un Array, il conteggio degli item parte da zero (0) fino ad N.

Per controllare la lunghezza di una stringa esiste la Funzione Len() che accetta come parametro la stringa di cui, appunto, si vuole controllare la lunghezza. La sintassi è la seguente:

Len(stringa)
quindi
Debug.Print Len("Luca")
restituisce 4.

VB possiede tre Funzioni l'una figlia dell'altra che serve ad eliminare gli spazi superflui sulla sinistra, sulla destra o sia sulla sinistra che sulla destra di una stringa. Le Funzioni sono rispettivamente LTrim() (Left Trim), RTrim() (Right Trim) e Trim().

La sintassi è analoga per tutte e tre le Funzioni ed il funzionamento è quello appena descritto; facciamo un esempio con Trim(); la sua sintassi è:

Trim(stringa)
quindi
Debug.Print Trim("   Luca   ")
restituisce Luca senza gli spazi superflui.

Le Funzioni Left(), Right() e Mid() servono rispettivamente ad isolare da una stringa un certo numero di caratteri specificati. Andiamo per ordine e vediamo come usufruire delle funzionalità di tutte e tre.

Si crei un nuovo EXE standard e si inserisca nella parte generale il seguente codice:

Option Explicit
Dim stringa As String
che useremo per gli esempi di tutte e tre le funzioni appena accennate.

La sintassi di Left è la seguente:

Left(stringa, numero di caratteri)
Nel codice Form_Load() inseguire il seguente codice:
Private Sub Form_Load()
    stringa = "lukeonweb.net"
    Debug.Print Left(stringa, 4)
End Sub
La stringa lukeonweb.net viene parserizzata da Left() e restituisce solo i primi 4 caratteri, ovvero luke.

Il seguente codice illustra l'utilizzo della Funzione Right()

Private Sub Form_Load()
    stringa = "lukeonweb.net"
    Debug.Print Right(stringa, 4)
End Sub
Il risultato è .net.

In pratica Left() prende N caratteri specificati come secondo parametro tra parentesi a partire dalla sinistra della stringa, mentre Right() parte dalla destra.

Mid() invece non considera N caratteri a partire da sinistra ed N caratteri a partire da destra; un esempio:

Private Sub Form_Load()
    stringa = "lukeonweb.net"
    Debug.Print Mid(stringa, 5, 5)
End Sub
Il risultato è onweb.

Le stringhe possiedono ancora moltissime Funzioni, ma quelle spiegate in questo capitolo sono essenziali per affrontare la programmazione VB; rimando la spiegazione di altre Funzioni ad un corso più avanzato o ad un corso professionale.

Hosting multidominio Linux

Alla scoperta del pacchetto LINUX Super di Kolst.it: un hosting di fascia alta pensato per Web Agency e Web Designer freelance

Corsi
  • Corso MS Access
    Corso MS Access
    Impara a creare e gestire database in maniera semplice e veloce. A partire da 29 €
  • Corso Visual Basic 6
    Corso Visual Basic 6
    Realizzare applicazioni Desktop con VB6. A partire da 49 €
Vedi anche...
Altre Guide