- presentazione del sito
- Registrazione
- Eventi, mostre, convegni ed iniziative segnalate dalle aziende
- Recensioni ed articoli
- Le Mailing Lists
- La rivista Pc Ciechi
- Wiki
- Chi siamo
- Donazioni
- Un progetto degno di nota: Wintalbra
- Come navigare in questo sito
- rss
- Bancomat Accessibili sul territorio nazionale
- Contattaci
- I sostenitori di SpazioAusili
Ripasso corso vbs\Concatenamento di stringhe ed espressioni
Guido Ruggeri su winguidotecnica, 18\01\2010, h. 21.344.
Ripassiamo il concetto di concatenamento delle stringhe.
Concatenare due stringhe significa ricavare un'unica stringa
che contenga i caratteri della prima stringa seguiti da
quelli della seconda.
Analogamente quando si concatenano più di due stringhe.
Per concatenare due o più stringhe, si deve scrivere
un'espressione in cui le stringhe, o le variabili che le
contengono, siano separate mediante un operatore di
concatenamento.
L'operatore di concatenamento è il simbolo della e
commerciale, ma si può usare anche il segno +. Io però
sconsiglio di usare il +, perché ci si confonde con le
operazioni di addizione tra numeri.
Ad esempio, se abbiamo già assegnato due stringhe alle
variabili Stringa1 e Stringa2, l'espressione
Stringa1 & Stringa2
restituisce il loro concatenamento.
Possiamo quindi usare una tale espressione in una istruzione
di assegnazione:
Stringa3 = Stringa1 & Stringa2
oppure possiamo usarla come argomento in una chiamata di
routine, come ad esempio MsgBox:
MsgBox Stringa1 & Stringa2
Facciamo il solito esempio con le solite variabili Cognome e
Nome:
Cognome = "Ruggeri"
Nome = "Guido"
Nominativo = Nome & Cognome
eseguendo questo esempio, si ottiene che la variabile
nominativo contiene la stringa "GuidoRuggeri".
Ci accorgiamo però che in questa stringa le due parole
Guido e Ruggeri sono attaccate: manca, cioè, lo spazio in
mezzo.
Questo perché ci siamo dimenticati di aggiungerlo, quando
abbiamo fatto il concatenamento.
E allora rifacciamo meglio l'esempio:
Ed ora, un po' di pubblicità
:Cognome = "Ruggeri"
Nome = "Guido"
Nominativo = Nome & " " & Cognome
Adesso va meglio. Concateniamo non due, ma tre stringhe, di
cui quella di mezzo è uno spazio. Così, come risultato,
otteniamo "Guido Ruggeri".
E' anche possibile concatenare stringhe con numeri. In
questo caso, l'interprete provvederà a convertire i numeri
nelle stringhe che li rappresentano, e quindi a
concatenarle.
Esempio:
Anni = 48
Cognome = "Ruggeri"
Nome = "Guido"
MsgBox Nome & " " & Cognome & ", di anni " & Anni
Si noti che in questo esempio la variabile Anni contiene il
numero 48, perché nella prima riga l'argomento
dell'assegnazione è scritto senza le virgolette.
Quindi numero, non stringa.
Eppure, nell'ultima riga, il concatenamento funziona lo
stesso. Perché l'interprete provvede a convertire il
numero in stringa e a concatenarlo al resto.
Già che ci siamo, chiariamo il concetto di espressione.
Un'espressione è qualsiasi istruzione, o insieme di
istruzioni, che restituisca un valore.
48
è un'espressione, perché ci restituisce il numero 48,
sotto forma di numero.
Anche
"48"
con le virgolette, è un'espressione, perché ci
restituisce una stringa contenente i caratteri 4 e 8.
48 + 10
è un'espressione, perché rappresenta la somma di due
numeri e ci restituisce, come risultato, il numero 58.
"Tra 10 anni avrò " & 48 + 10 & " anni"
Anche questa è un'espressione, perché restituisce la
stringa:
"Tra 10 anni avrò 58 anni"
Quest'ultimo esempio spiega anche perché io sconsiglio di
usare l'operatore + per concatenare le stringhe. Avremmo
potuto farlo, e scrivere:
"Tra 10 anni avrò " + 48 + 10 + " anni"
Il risultato sarebbe stato lo stesso, ma leggendo
l'espressione ci si confonde, diventa meno immediato
distinguere i segni + che fungono da concatenatori da quello
che serve per l'addizione.
Anche il richiamare il nome di una variabile costituisce
un'espressione. Infatti restituisce il valore che quella
variabile contiene in quel momento.
Stesso discorso per il richiamo del nome di una costante.
Infine, anche la chiamata ad una funzione costituisce
un'espressione. Una funzione, infatti, è una routine che
restituisce un valore.
Dove le usiamo le espressioni?
Le usiamo nelle istruzioni di assegnazione, oppure come
argomenti delle chiamate di routine. Ma le usiamo anche nei
confronti, nelle istruzioni condizionali. Insomma, un po'
dappertutto.
Ad esempio:
Cognome = "Ruggeri"
Nominativo = "Guido " & Cognome
Nella prima istruzione, "Ruggeri" è un'espressione che
restituisce una stringa che contiene la parola Ruggeri. Tale
contenuto viene assegnato alla variabile Cognome.
Nella seconda istruzione, "Guido" & Cognome è
un'espressione di concatenamento che restituisce il valore
"Guido Ruggeri". Tale valore viene assegnato alla variabile
Nominativo.
Altro esempio:
Cognome = "Ruggeri"
MsgBox "Guido " & Cognome
La prima istruzione è come prima.
Nella seconda istruzione, "Guido" & Cognome è sempre
un'espressione di concatenamento che restituisce il valore
"Guido Ruggeri". Però questa volta tale valore non viene
usato in una istruzione di assegnazione, ma invece
costituisce l'argomento della procedura MsgBox.