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.