Visul Basic Manual

Embed Size (px)

Citation preview

Captulo 5 - Funciones propias de Visual Basic Volver al ndice

En esta quinta parte del tutorial de Visual Basic se describen las funciones propias del lenguaje que permiten trabajar con cadenas de caracteres, con nmeros, fechas, horas, presentar mensajes en pantalla y muchas otras funciones para formatar datos especficos.

Contenido

y 1 - Funciones para el tratamiento de cadenas

y 1.1 - Funcin Lcase y Ucase

y 1.2 - Funcin Trim, LTrim y RTrim

y 1.3 - Funcin Len

y 1.4 - Funcin Asc y Chr

y 1.5 - Funcin InsTr

y 1.6 - Funcin Left, Right y Mid

y 1.7 - Funcin Str y Val

y 2 - Funciones para el tratamiento de nmeros

y 2.1 - Funcin Round

y 2.2 - Rnd y Randomize - Nmeros aleatorios

y 2.3 - Otras funciones

y 3 - Funciones de formato

y 4 - Funciones de formato para fechas y hora

y 4.1 - Funciones para calcular fechas

y 4.2 - Funciones para obtener la fecha y hora de la PC

y 6 - Funciones para presentar mensajes - InputBox y

MSgbox

y 7 - Ejemplos

1 - Funciones para el tratamiento de cadenas Las funciones de cadena , como su nombre lo indica, se utilizan para trabajar y tratar las cadenas de caracteres. A continuacin las mas importantes de ellas.

1.1 - Funcin Lcase y Ucase Estas dos funciones se utilizan para convertir cadenas de texto a minscula y mayscula. La funcin Lcase cambia o convierte una cadena de texto a minscula y un ejemplo de como utilizarla sera as:

Lcase (cadena que queremos convertir a minsculas)

Ejemplo:

Dim cadena As String cadena = "HOLA MUNDO" 'Convertimos cadena = LCase(cadena) 'La variable cadena ahora vale "hola mundo"

La funcin Ucase funciona de la misma manera que Lcase pero convierte el contenido de una cadena a maysculas. Por ejemplo, si tenemos un control Label1 que contiene un texto que dice: "Porcentaje de sueldos", escribiendo la siguiente lnea:

Label1 = UCase(Label1)

El control Label1 pasara a mostrar o mejor dicho contener en su propiedad caption:"PORCENTAJE DE SUELDOS".

1.2 - Funcin Trim, LTrim y RTrim Estas tres funciones se utilizan para eliminar los espacios vacos de una cadena. LTrim elimina los espacios vacos de la parte izquierda de la cadena, RTrim de la parte derecha y Trim de ambas partes. Ejemplos: Tenemos una variable llamada ciudad con el valor " Barcelona". Para eliminar los espacios vacos de la izquierda haramos lo siguiente:

ciudad = LTrim(ciudad)

Si en un TextBox quisieramos borrar todos los espacios vacos de la parte derecha de la cadena:

MiText = RTrim(MiText)

La Funcin Trim elimina todos los espacios vacos de ambos lados de la cadena. Ejemplo:

Pais = " Argentina Pas = Trim(Pais)

"

Ahora el valor de Pas es igual a: "Argentina".

1.3 - Funcin Len La funcin Len nos permite conocer la cantidad de caracteres que tiene una determinada cadena. O sea que esta funcin nos devuelve un nmero. Ejemplo:

Len (Aqu va la cadena que queremos averiguar su tamao)

Como la funcin Len devuelve un nmero debemos asignar ese nmero devuelto en una variable de tipo numrica.

Ejemplo:

Dim TamanoCadena As Long Dim MiCadena As String MiCadena = "Me Llamo Eustaquio" TamanoCadena = Len(MiCadena)

El valor de la variable TamanoCadena pasara a valer 18. Hay que tener en cuenta que la funcin Len tambin toma en cuenta los espacios vacos.

1.4 - Funcin Asc y Chr La funcin Asc nos permite obtener el cdigo ASCII de un de terminado caracter. Ejempos: Si queremos obtener el cdigo ASCII del caracter "a", que es el nmero 97 podramos hacer lo siguiente:

Dim num As Integer num = Asc("a") En definitiva la funcin Asc lleva un solo parmetro de tipo String del cual queremos obtener dicho nmero. La Funcin Chr acta a la inversa de la funcin Asc, esto quiere decir, que a partir de un determinado nmero nos devolver el caracter ASCII.

Obviamente que en vez de pasarle a la funcin un parmetro String es decir la letra, debemos pasarle un nmero ASCII y nos devolver el carcter asociado. Ejemplo:

Dim letra As String letra = Chr(97) La variable pasa a valer en este caso el caracter "a"

1.5 - Funcin InsTr La funcin InStr se utiliza para buscar una cadena o parte de una cadena dentro de otra cadena. Si la funcin encuentra la cadena a buscar devuelve un nmero que representa la posicin donde encontr la cadena, si no la encuentra devuelve un 0. Los parmetros que lleva esta funcin son:

InStr (comienzo, Cadena donde buscar , La Cadena a buscar) Como esta funcin devuelve un nmero debemos almacenarla en una variable de tipo numrica para utilizarla. Ejemplo:

Dim posicion As Integer posicion = InStr("Estoy tomando mate", "mate") En este ejemplo la funcin encontr la cadena "mate" en la posicin 15, o sea que la variable posicin pasa a valer 15.

Si observamos bien, la funcin en el primer parmetro, denominado comienzo, nos pide que le digamos desde que posicin comenzar a buscar. En nuestro ejemplo, este parmetro lo obviamos, esto quiere decir que comenzar desde la posicin 0 de la cadena a buscar. Pero podramos especificar una posicin en particular, por ejemplo desde la 5 , 10 etc..., segn lo que necesitemos hacer.

Otro ejemplo de InsTr : Este ejemplo, muestra como buscar dentro de un control TextBox, el cual tiene dos opciones, un botn para buscar la primera frase, y otro que sigue buscando a partir de donde est ubicda la seleccin. Para armar el ejemplo colocar un Textbox llamado Text_Buscar que es donde se ingresar la frase y otro TextBox llamado Text1 que tendr el texto. Este ultimo con la propiedad Multiline en True. Tambin colocar dos CommandButton: Command1 y Command2

Colocar el siguiente cdigo fuente en el formulario:

Option Explicit

Private m_Pos As Integer

Sub buscar_cadena(ByVal Posicion As Integer)

Dim p As Integer, Frase As String

Frase = txt_Buscar

p = InStr(Posicion, Text1, Frase)

If p > 0 Then m_Pos = p

With Text1 .SelStart = m_Pos - 1 .SelLength = Len(Frase) .SetFocus End With Else

MsgBox "No se encontr la frase", vbInformation Text1.SetFocus End If End Sub

Private Sub Command1_Click() 'Busca a pratir de la primera pocicin Call buscar_cadena(1) End Sub

Private Sub Command2_Click() 'Busca a partir del valor que tenga m_Pos

Call buscar_cadena(m_Pos + 1)

End Sub

Private Sub Form_Load() Command1.Caption = "Buscar" Command2.Caption = "Buscar siguiente" Me.Caption = "Ejemplo de InStr " End Sub

Nota: tambin hay una funcin similar a Instr llamada InstrRev , y lo que hace es devolver la posicin de la primera concurrencia de una cadena dentro de otra cadena, pero comenzando por el extremo derecho de la misma En este enlace hay un ejemplo que usa la funcin instrRev Extraer de un path o ruta, solo la extensin del archivo

Funcin Left, Right y Mid

Estas funciones son utilizadas para extraer partes de una cadena. La funcin Left: tiene 2 parmetros: El primero es la cadena de la cual se extraern caracteres, y el segundo un nmero desde el cual comenzar a extraer caracteres desde la parte izquierda. Ejemplo:

Dim Cadena As String Cadena = Left("Ya es la madrugada", 9) 'Cadena, que es un string, sera igual a: "Ya es la"

Funcin Right: Es igual que la funcin Left pero comienza a extraer caracteres desde el lado derecho de la cadena. La funcin Mid: Tiene la misma funcin que las anteriores pero posee tres parmetros. Su sintaxis es:

Mid (cadena, inicio, longitud) El parmetro cadena es la cadena a extraer caracteres. El parmetro Inicio es donde comenzar y el parmetro longitud, es la cantidad de caracteres a extraer de la cadena de caracteres Ejemplos:

Dim nombre As String nombre = Mid("River perdi la copa", 7, 6) 'La variable nombre sera igual a: "perdi"

Este Otro ejemplo usa la funcin Mid para realizar un simple efecto tipo mquina de escribir. Colocar en un formulario un CommandButton y el siguiente cdigo fuente en el form.

Option Explicit

Sub Pausa(Segundos As Double)

Dim inicio As Double

' Devuelve la cantidad de segundos desde que inicio windows inicio = Timer

Do While (Timer - inicio) < Segundos ' pausa DoEvents Loop End Sub

Private Sub Command1_Click()

Dim texto As String

texto = "... Hola mundo --->>> "

Call MostrarTexto(texto, 0.1, Me)

End Sub

Private Sub MostrarTexto(Frase As String, _ Segundos As Double, _ Destino As Object)

Dim LenFrase As Integer Dim i As Integer

Dim Caracter As String Dim texto As String

LenFrase = Len(Frase)

Do While i