|
Visual Basic-10
LEN, LEFT, RIGHT y MID. Tablas.
LEN
Cuenta el número de carácteres.
nom = "Juan Antonio"
c = LEN (nom)
MsgBox c ------------>
12
|
LEFT
Devuelve los primeros carácteres de la izquierda de una cadena.
nom = "Juan Antonio"
izq = LEFT (nom, 4) --------->
Juan |
Ejemplo:
nom = "Juan Antonio"
r = ""
For n = 1 To Len(nom)
r = r & Left(nom, n) & vbCrLf
Next n
MsgBox r
' vbCrLf hace un cambio de línea.
|
RIGHT
Devuelve los últimos carácteres de
la derecha de una cadena.
nom = "Juan Antonio"
izq = RIGHT (nom, 7) --------->
Antonio |
Ejemplo:
nom = "Juan Antonio"
r = ""
For n = 1 To Len(nom)
r = r & Right(nom, n) & vbCrLf
Next n
MsgBox r
|
MID
Devuelve los n carácteres después
del m.
nom = "Juan Antonio"
izq = MID (nom, 2, 3) --------->
uan |
Ejemplos:
nom = "Juan Antonio"
r = ""
For n = 1 To Len(nom)
x = Mid(nom, n, 1)
r = r & x & "-"
Next n
MsgBox r ------> J-u-a-n- -A-n-t-o-n-i-o-
|
nom = "Juan Antonio"
r = ""
For n = Len(nom) To 1 Step -1
x = Mid(nom, n, 1)
r = r & x & "-"
Next n
MsgBox r ------> o-i-n-o-t-n-A- -n-a-u-J-
|
Cambia la letra "n" por la "M"
nom = "Juan Antonio"
r = ""
For n = 1 To Len(nom)
x = Mid(nom, n, 1)
If x = "n" Then Mid(nom, n, 1) = "M"
Next n
MsgBox nom -------> JuaM aMtoMio
|
CHR y ASC son complementarios.
a CHR le ponemos un número y nos devuelve su carácter.
a ASC le ponemos un carácter y nos devuleve su número.
CHR (97) ------> a
ASC ("b") ------> 98
Codificación.
A cada carácter le suma un número para cambiarlo por
el siguente carácter.
Juan ---> Kvbo En este
caso le hemos añadido 1 a cada carácter.
nom = "Juan Antonio"
r = ""
h = 1 ' El valor de h lo podemos cambiar
For n = 1 To Len(nom)
x = Mid(nom, n, 1)
r = r & Chr(Asc(x) + h)
Next n
MsgBox r
|
Te propongo el siguiente ejercicio:
Elegir un archivo de texto (o de lo que sea). Elegir un número
y codificar el archivo. Luego guardarlo
.
Y sabrías hacer este otro... a los caracteres impares
le añade un 4 y a los caracteres pares le añade un
7.
Tablas
Se utiliza para que una variable tenga subíndices:
a(0), a(1), a(2), a(3), a(4), a(5), a(6).
Se declara de esta manera:
DIM a(6)
De esta forma se establece que tendrá 7 subíndices
(del 0 .... al 6)
Puede ocurrir que al principio no sepamos los subíndices
o dimensiones que va a tener, en este caso la declaramos de
esta manera:
DIM a ( )
Cuando durante la ejecución del programa conozcamos sus
dimensiones, la volvemos a declarar:
ReDim a(c)
Al volverla a declarar, los datos que tenía guardado
los pierde, si no queremos que los pierda, la redimensionamos
así:
ReDim Preserve a(c)
47.- Guardar y Ver datos en una Tabla
de dos dimensiones.
 |
|
a(1,1)
|
a(1,2)
|
|
a(2,1)
|
a(2,2)
|
|
a(3,1)
|
a(3,2)
|
|
a(4,1)
|
a(4,2)
|
|
a(5,1)
|
a(5,2)
|
|
a(6,1)
|
a(6,2)
|
|
a(7,1)
|
a(7,2)
|
|
a(8,1)
|
a(8,2)
|
|
a(9,1)
|
a(9,2)
|
|
Dim a(10, 2)
Dim x, n
Private Sub Command1_Click()
x = x + 1
a(x, 1) = Text1.Text
a(x, 2) = Text2.Text
End Sub
Private Sub Command2_Click()
n = n + 1
Text3.Text = a(n, 1)
Text4.Text = a(n, 2)
End Sub
Private Sub Command3_Click()
x = 0
n = 0
End Sub
|
|
Cada vez que damos a Iniciar, tanto X como N se ponen
a 0.
En el caso de Guardar, se sobreescriben los valores anteriores.
En el caso de Ver se vuelven a ver los valores.
Cuando cerramos la aplicación, los valores se
pierden, para que no se pierdan tendríamos que
guardalos en un archivo en vez de una tabla.
|
 |
Dim a()
Dim x, n
Dim k
Private Sub Command1_Click()
x = x + 1
a(x, 1) = Text1.Text
a(x, 2) = Text2.Text
End Sub
Private Sub Command2_Click()
n = n + 1
Text3.Text = a(n, 1)
Text4.Text = a(n, 2)
End Sub
Private Sub Command3_Click()
x = 1
n = 1
End Sub
Private Sub Command4_Click()
k = k + 1
ReDim a(k, 2)
Text5.Text = k
End Sub
Private Sub Form_Load()
k = 10
End Sub
|
|
En este otro caso Ampliamos la dimensión de
la Tabla al pulsar el Botón "Redimensionar".
Borrándose los valores ya almacenados.
Si no queremos que se borren los valores ya almacenados,
ReDimensionamos de esta manera: ReDim
Preserve a(k,2)
|
48.- Cambiar letras.
Se introduce una palabra.
Se calcula las letras que tiene.
Se Redimensiona una matriz con ese número de letras.
Se desordenan una cantidad de números.
Se guardan las letras según el desorden anterior.
Aparece la palabra anterior con sus letras desordenadas.
 |
Dim a() As Integer
Dim palabra
Private Sub Cambia_Click()
Randomize Timer
palabra = Text1.Text
c = Len(palabra)
ReDim a(c)
' Vamos a cambiar numeros
' Ejemplo: 1,2,3,4 -- > 3,1,4,2
For n = 1 To c
saca:
g = 1 + Int(Rnd * c)
For k = 1 To c
' SI Repetido vuelve a saca
If a(k) = g Then GoTo saca
Next k
a(n) = g
' Print g;"-";
Next n
Text1.Text = ""
Text2.Text = ""
For m = 1 To c
Text2.Text = Text2.Text & Mid(palabra, a(m), 1)
Next m
End Sub
Private Sub Probar_Click()
If Text3.Text = palabra Then
q = MsgBox("Has acertado", , "Enhorabuena")
Else
q = MsgBox("No has acertado", , "Repite")
End If
End Sub
Private Sub Salir_Click()
End
End Sub
Private Sub Solucion_Click()
Text1.Text = palabra
End Sub
|
|