Supponiamo di voler creare una stringa composta da uno stesso carattere ripetuto più volte.
Nel buon vecchio VB6 esisteva la funzione String(Number as Long, Character).
Debug.Print String(5, "p")
In VB.Net è stata sostituita dalla StrStup(Number as Integer, Character as Object)
Debug.Print StrDup(5, "p")
Supponiamo, questa volta, di voler replicare una stringa e non un solo carattere. Le due funzioni precedenti accettano come Character una stringa, ma ne replicano solo il primo carattere.
In nostro aiuto arriva la StrDupEx che accetta sempre i due parametri Number e Character come per le funzioni originali. Questa volta, però, Character è di tipo String e verrà completamente replicato.
Qui di seguito una duplice versione per VB.Net e VB6.
VB.Net
''' <summary>
''' Restituisce una stringa composta da uno o pi caratteri ripetuti per il numero di volte specificato.
''' </summary>
''' <param name="Number">Numero di ripetizioni da effettuare</param>
''' <param name="Character">Stringa da replicare</param>
''' <returns></returns>
''' <remarks></remarks>
Private Function StrDupEx(ByVal Number As Integer, ByVal Character As String) As String
'***********************************************************
' Func: StrDupEx (Creazione Sandro Bizioli-23/09/2008; Mod.: )
' Desc: Restituisce una stringa composta dal o dai caratteri specificato/i
' ripetuto per il numero di volte specificato.
' convertita nel rispettivo numero long
' Par : Number Numero di ripetizioni da effettuare
' Ret : Character Stringa da replicare
'***********************************************************
Dim newString As New System.Text.StringBuilder(Character.Length * Number)
For x As Integer = 1 To Number
newString.Append(Character)
Next
Return newString.ToString
End Function
VB6
Private Function StrDupEx(ByVal Number As Integer, ByVal Character As String) As String
'***********************************************************
' Func: StrDupEx (Creazione Sandro Bizioli-23/09/2008; Mod.: )
' Desc: Restituisce una stringa composta dal o dai caratteri specificato/i
' ripetuto per il numero di volte specificato.
' convertita nel rispettivo numero long
' Par : Number Numero di ripetizioni da effettuare
' Ret : Character Stringa da replicare
'***********************************************************
Dim newString As String
Dim x As Integer
For x = 1 To Number
newString = newString & Character
Next
StrDupEx = newString
End Function