que puede ser útil para el que necesite generar cadenas para claves, o para rellenar
de basura el stub, no es nada del otro mundo, solo que es muy configurable.
Lo he comentado un poquito para que sea más didáctico para los que empiezan con
el VB6 y aprendan a ser ordenados con el código
Código: Seleccionar todo
'------------------------------------------------------------------------------
' Procedure : sRandomString v0.2
' DateTime : 23-04-2010 15.32
' Author : Tk68
' Purpose : Genera cadena aleatoria
'------------------------------------------------------------------------------
' Optional lStringSize Long : Tamaño cadena
' (De no indicar tamaño usará uno aleatorio 8 a 255)
'
' Optional bNumericalChr Boolean : Usar car. numéricos (0-9)
' Optional bAlphabetChr Boolean : Usar car. alfabéticos (a-z, A-Z)
' Optional bSpecialChr Boolean : Usar car. especiales (No: Num.-Alpha.-Ctl)
' Optional bControlChr Boolean : Usar car. control (ASCII 0-32, 127)
' Optional sUserChr String : Usar car. de usuario (Los que pongamos...)
' (De no indicar caracteres usará todos los ASCII + ASCII Ext.)
'------------------------------------------------------------------------------
' Usage:
' sRandomString () ' ASCII + ASCII Ext. y tamaño aleatorio
' sRandomString (32,True,True) ' Alfanumérica y tamaño 32
' sRandomString (,,,True) ' Especiales y tamaño aleatorio
' sRandomString (4,True,,,,"ABCDEF") ' Hexadecimal y tamaño 4
'------------------------------------------------------------------------------
Public Function sRandomString( _
Optional lStringSize As Long, _
Optional bNumericalChr As Boolean, _
Optional bAlphabetChr As Boolean, _
Optional bSpecialChr As Boolean, _
Optional bControlChr As Boolean, _
Optional sUserChr As String _
) As String
' Rango tamaño aleatorio (8 a 255)
Const lStringSizeRndMin As Long = 8
Const lStringSizeRndMax As Long = 255
' Contadores
Dim i As Integer
Dim l As Long
' Caracteres
Dim sNumericalChr As String
Dim sAlphabetChr As String
Dim sSpecialChr As String
Dim sControlChr As String
' Misc
Dim sChrTable As String
Dim iTableSize As Integer
Dim iRndPosChrTable As Integer
Dim sRandomStringTemp As String
' Caracteres numéricos
sNumericalChr = "1234567890"
' Caracteres alfabéticos
sAlphabetChr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
' Caracteres especiales
sSpecialChr = " !""""#$%&'()*+,-./:;<=>?@[\]^_`{|}~"
For i = 128 To 255: sSpecialChr = sSpecialChr & Chr(i): Next
' Caracteres control
sControlChr = Chr(127)
For i = 0 To 32: sControlChr = sControlChr & Chr(i): Next
' Creamos la tabla de caracteres a usar
If bNumericalChr Then sChrTable = sChrTable & sNumericalChr
If bAlphabetChr Then sChrTable = sChrTable & sAlphabetChr
If bSpecialChr Then sChrTable = sChrTable & sSpecialChr
If bControlChr Then sChrTable = sChrTable & sControlChr
sChrTable = sChrTable & sUserChr
If sChrTable = vbNullString Then ' De no indicar caracteres usará todos los ASCII + ASCII Ext.
For i = 0 To 255: sChrTable = sChrTable & Chr(i): Next
End If
iTableSize = Len(sChrTable) ' Longitud tabla caracteres
Randomize
' De no indicar tamaño usará uno aleatorio
If lStringSize = 0 Then lStringSize = Int((lStringSizeRndMax - lStringSizeRndMin + 1) * Rnd + lStringSizeRndMin)
' Generamos cadena aleatoria hasta tamaño lStringSize
For l = 1 To lStringSize
iRndPosChrTable = Int((iTableSize * Rnd) + 1) ' Generando posición aleatoria para extraer carácter de la tabla
sRandomStringTemp = sRandomStringTemp & Mid(sChrTable, iRndPosChrTable, 1) ' Generando cadena
Next
sRandomString = sRandomStringTemp
End Function