Innanzitutto precisiamo che tutte le funzioni che nel QB restituivano stringhe come Mid$, Right$, etc... nel VB sono ancora presenti, ma bisogna fare una distinzione tra (ad esempio) Mid e Mid$, infatti possono sembrare uguali ma i tipi restituiti sono diversi: Mid$ restituisce un tipo Stringa invece Mid un Variant! quindi Mid è più lenta di Mid$ (in quanto i tipi variant sono più pesanti di quelli string)
Le funzioni principali che si occupano della gestione delle stringhe sono:
->Mid$
------
Dichiarazione:
Function Mid$(String As String, Start As Long, [Length]) As String
Definizione:
Restituisce una parte di stringa di lunghezza specificata.
Esempio:
Dim strProva As String
Dim str2 As String
strProva = "Ciao a Tutti"
str2 = Mid$(strProva, 5, 4)
'A str2 viene assegnato il valore "a Tu"
Questo perchè la funzione mid$ restituisce i primi 4 caratteri partendo dal 5°, spostandosi verso destra.
->Left$ e Right$
----------------
Dichiarazioni:
- Function Left$(String As String, Length As Long) As String
- Function Right$(String As String, Length As Long) As String
Definizioni:
Restituiscono rispettivamente N caratteri da destra o da sinistra.
Esempio:
Dim strProva As String
Dim str2 As String
strProva = "Ciao a Tutti"
str2 = Right$(strProva,5)
'A str2 viene assegnato il valore "Tutti"
str2 = Left$(strProva)
'A str2 viene assegnato il valore "Ciao "
->LCase e UCase
---------------
Dichiarazioni:
- Function UCase$(String As String) As String
- Function LCase$(String As String) As String
Definizioni:
Convertono una stringa da maiuscola a minuscola (LCase: Low Case) e viceversa (UCase: Upper Case).
Esempio:
Dim strProva As String
Dim str2 As String
strProva = "Ciao a Tutti"
str2 = UCase$(strProva)
'A str2 viene assegnato il valore "CIAO A TUTTI"
str2 = LCase(strProva)
'A str2 viene assegnato il valore "ciao a tutti"
->Asc e Chr$
------------
Dichiarazioni:
- Function Asc(String As String) As Integer
- Function Chr$(CharCode As Long) As String
Definizioni:
Restituiscono il carattere Ascii di un carattere (Asc) e viceversa (Chr$).
Esempio:
Dim strProva As String
Dim Ascii As Integer
Dim str2 As String
strProva = "C"
Ascii = Asc(strProva)
'Ascii conterrà il carattere Ascii del PRIMO carattere della stringa passata
str2 = Chr$(Ascii)
'str2 avrà il valore "C"
->Instr
-------
Dichiarazione:
Function InStr([Start], [String1], [String2], [Compare As VbCompareMethod = vbBinaryCompare])
Definizione:
Restituisce la posizione del primo carattere String2 in String1, se String2 non viene trovata restituisce 0.
Esempio:
Dim str1 As String
Dim str2 As Integer
Dim str2 As String
str1 = "Ciao a Tutti"
str2 = "Tutti"
MsgBox Instr(1,str1,str2)
'Mostrerà una finestra di messaggio con il valore 8
'Invece se str2 = "uiyfguyg"
'Mostrerà 0
Un metodo per controllare se una stringa è contenuta in un'altra è il seguente:
If Instr(str1,str2) <> 0 Then ....
->Len
-----
Dichiarazione:
Function Len(expression)
Definizione:
Restituisce il numero di caratteri che compongono una variabile di tipo String. Se viene passata una variabile di tipo numerico produce un errore.
Esempio:
Dim string1 As String
Dim lunghezza As Integer
string1="Hello World!"
lunghezza=Len(string1)
'A lunghezza viene assegnato il valore 12
->LTrim$, RTrim$ e Trim$
------------------------
Dichiarazione:
- Function LTrim$(string)
- Function RTrim$(string)
- Function Trim$(string)
Definizione:
LTrim$ (Left) toglie le spaziature che si trovano all'inizio (partendo da sinistra) di una stringa. RTrim$ (Right) toglie le spaziature che si trovano all'inizio (partendo da destra) di una stringa. Trim$ toglie le spaziature che si trovano all'inizio e alla fine di una stringa.
Esempio:
Dim string1 As String
Dim string2 As String
string1=" Today is a beautiful day! "
string2=LTrim$(string1)
'Assegna a string2 il valore "Today is a beautiful day! "
string2=RTrim$(string1)
'Assegna a string2 il valore " Today is a beautiful day!"
string2=Trim$(string1)
'Assegna a string2 il valore "Today is a beautiful day!"
->StrReverse
------------
Dichiarazione:
Function StrReverse(expression as String) As String
Definizione:
Inverte i caratteri di una stringa, ritornando una nuova stringa di tipo String.
Esempio:
Dim string1 As String
Dim string2 As String
string1="Ciao"
string2=StrReverse(string1)
'Assegna a string2 il valore "oaiC"
->Replace
---------
Dichiarazione:
Function Replace(string1,string2,string3) As String
Definizione:
Trova e sostituisce una sottostringa di una stringa.
Esempio:
Dim string1 As String
Dim string2 As String
Dim string3 As String
string1="Ciao"
string2="ao"
string3="polla"
MsgBox Replace(string1,string2,string3),,""
'Mostrerà una finestra di messaggio con il valore "Cipolla"
->Space$
--------
Dichiarazione:
Function Space$(number As Long) As String
Definizione:
Restituisce una stringa composta dal numero specificato di spazi.
Esempio:
Dim string1 As String
string1=Space$(5)
'Assegna a string1 il valore " " (5 caratteri di spaziatura)
->Split
-------
Dichiarazione:
Function Split(string,[delimiter])
Definizione:
Divide una stringa e assegna i valori all'interno di un array. Per dividere la stringa, la funzione split usa il carattere di spaziatura come delimitatore predefinito.
Esempio:
Dim string1 As String
Dim array1 As Variant
string1="Hello-World-!"
array1=Split(string1,"-")
MsgBox array1(1),,""
'Mostrerà una finestra di messaggio con il valore "World"
->Join
------
Dichiarazione:
Function Join(array, [delimiter]) As String
Definizione:
Inserisce gli elementi di un array in una stringa
Esempio:
Dim string1 As String
Dim array1 As Variant
array1 = Array("Hello", "World", "!")
string1=Join(array1,"-")
'Assegna a string1 il valore "Hello-Word-!"
->Strconv
---------
Dichiarazione:
Function StrConv(String, Conversion As VbStrConv, [LocaleID As Long])
Definizione:
Converte una stringa
Esempio:
Function LTF(path As String) As String
Dim Buff() As Byte
Dim s As Integer
s = FreeFile
Open path For Binary As #s
' resize del buffer
ReDim Buff(LOF(s))
' read all
Get s, , Buff
Close #s
LTF = StrConv(Buff, vbUnicode)
End Function
Il byte array Buff viene convertito in unicode per essere visualizzato
->String$
---------
Dichiarazione:
Function String$(Number As Long, Character) As String
Definizione:
Restituisce una stringa di caratteri ripetuti della lunghezza specificata.
Esempio:
MsgBox String$(5, "c")
'Mostrerà una finestra di messaggio con il valore "ccccc"
Come ottimizzare un controllo su una stringa, per sapere se è vuota:
E' risaputo tra i programmatori, che una variabile stringa è molto più pesante di una variabile numerica. Si può dire quindi che, è molto più veloce eseguire un controllo numerico su una stringa, piuttosto che confrontare la stringa stessa con un'altra stringa.
Per capire meglio...
If Stringa <> "" Then
'Confronto con un'altra stringa: SBAGLIATO!
If Stringa <> vbNullString Then ...
'Confronto con una stringa vuota (come nell'esempio di sopra): SBAGLIATO!
If Len(Stringa)=0 Then ...
'Confronto numerico: CORRETTO! L'operazione di confronto avverrà molto più velocemente.
ciao, sapreste dirmi come posso fare per eliminare tutte le vocali da una stringa?
ad esempio:
in input ho: "oggi vado al cinema"
in output dovrei avere: "gg vd l cnm"
come faccio?
Grazie!
Aggiungi un commento