Escolar Documentos
Profissional Documentos
Cultura Documentos
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
Inicio
Ejemplos vb
Ocx - Activex
Api vb
Tutoriales - Manuales
Cdigo fuente
Ejemplos vb.net
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
1 - Funciones para el tratamiento de cadenas 1.1 - Funcin Lcase y Ucase 1.2 - Funcin Trim, LTrim y RTrim 1.3 - Funcin Len 1.4 - Funcin Asc y Chr 1.5 - Funcin InsTr 1.6 - Funcin Left, Right y Mid 1.7 - Funcin Str y Val 2 - Funciones para el tratamiento de nmeros 2.1 - Funcin Round 2.2 - Rnd y Randomize - Nmeros aleatorios 2.3 - Otras funciones 3 - Funciones de formato 4 - Funciones de formato para fechas y hora 4.1 - Funciones para calcular fechas 4.2 - Funciones para obtener la fecha y hora de la PC 6 - Funciones para presentar mensajes - InputBox y MSgbox 7 - Ejemplos
1 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
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".
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:
"
2 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
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:
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.
3 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
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
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
4 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
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
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:
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
5 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
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 Dim Dim Dim LenFrase As Integer i As Integer Caracter As String texto As String
LenFrase = Len(Frase) Do While i <= LenFrase Destino.Cls DoEvents i = i + 1 ' Obtiene el siguiente caracter Caracter = Mid(Frase, i, 1) ' texto actual texto = texto & Caracter Destino.Print texto ' Imprimi e/ dibuja el texto ' pausa o delay Pausa Segundos DoEvents Loop End Sub Private Sub Form_Load() Me.FontSize = 12 Me.Font.Bold = True Me.ForeColor = vbRed Command1.Caption = " Efecto de texto con mid " End Sub Private Sub Form_Unload(Cancel As Integer) End End Sub
La funcin Val convierte una cadena en un nmero yla funcin Str un nmero en una cadena. Ejemplos:
cadena = "123456" cadena = Val(cadena) 'Ahora cadena vale 123456 cadena2 = 123456 cadena2 = Str(cadena2)
6 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
Dim Mimumero As Long Minumero = Round(245.8) '(La funcin devuelve 246) Minumero = Round(245.3) '(La funcin devuelve 245) Minumero = Round(245.5) '(La funcin devuelve 245)
Round posee un parmetro opcional por si queremos incluir los dgitos decimales.
Rnd (nmero)
Pero para poder generar dichos nmeros aleatorios, debemos utilizar previamente la funcin Randomize con la siguiente frmula:
Dim LimiteInferior As Integer Dim LimiteSuperior As Integer LimiteInferior = 20 LimiteSuperior = 40 MsgBox Int((LimiteInferior - LimiteSuperior + 1) * Rnd + LimiteInferior)
En el ejemplo anterior, se generarn nmeros aleatorios comprendidos entre el 20 y el 40 Nota: en este enlace pods ver un ejemplo que permite generar nmeros aleatorios no repetidos
Funciones matemticas
Las principales funciones matemticas provistas por Visual Basic son: Abs: Devuelve el valor absoluto de una expresin numrica. Atn: Devuelve el arco tangente de un nmero. Cos: Devuelve el coseno de un ngulo. Exp: Devuelve el nmero "e" elevado a una potencia. Log: Devuelve el logaritmo natural de un nmero. Sgn: Devuelve un valor indicando el signo de un nmero. Sin: Devuelve el seno de un ngulo. Sqr: Devuelve la raz cuadrada de un nmero.
7 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
3 - Funciones de formato
Visual Basic posee varias funciones para darle formato a distintos tipos de datos e informacin. A continuacin se ve algunos ejemplos de las principales funciones: FormatCurrency: Esta funcin se utiliza para trabajar con nmeros con formato en dinero. Ejemplo: si tenemos un nmero 3 y utilizamos la funcin nos devolvera "$3". FormatPercent: Esta funcin es utilizada para trabajar con porcentajes. Ejemplo : si tendramos un nmero 321, nos devolvera: "32,1%" . FormatDateTime: Esta funcin trabaja con fechas y horas. FormatNumber: Formatea expresiones nmeros
Resultado = FormatPercent(321) 'devuelve: "32.100,00%" Resultado = FormatCurrency(3) 'devuelve: "$3,00" Resultado = FormatDateTime("6-8-1978") 'La funcin devolvera: "06/08/1978"
NumDigitsAfterDecimal: Parmetro de tipo opcional. Este indicar cuantos nmeros decimales devolver la funcin: Ejemplo
Esta funcin, en el primer parmetro se le debe pasar la fecha u hora a formatear, y el segundo parmetro es el tipo de formato, pueden ser 5 tipos. vbGeneralDate, vbLongDate, vbShortDate, vbLongTime y vbShortTime. Este parmetro es de tipo opcional. al colocar la coma dentro de la funcin , visual basic despliega la lista de constanetas mencionadas, como muestra el grfico:
Un ejemplo para ver estos formatos utilizando FormatDateTime: Colocar cinco option Button, cada botn de opcin mostrar los diferentes formatos en el caption del formulario, es decir en la barra de ttulo.
8 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
Cdigo en el formulario:
Private Sub Form_Load() Option1.Caption Option2.Caption Option3.Caption Option4.Caption Option5.Caption = = = = = " " " " " vbGeneralDate " vbLongDate " vbShortDate " vbLongTime " vbShortTime "
End Sub Private Sub Option1_Click() Me.Caption = FormatDateTime(Now, vbGeneralDate) End Sub Private Sub Option2_Click() Me.Caption = FormatDateTime(Now, vbLongDate) End Sub Private Sub Option3_Click() Me.Caption = FormatDateTime(Now, vbShortDate) End Sub Private Sub Option4_Click() Me.Caption = FormatDateTime(Now, vbLongTime) End Sub Private Sub Option5_Click() Me.Caption = FormatDateTime(Now, vbShortTime) End Sub
FormatNumber - Ejemplos:
Dim Numero As Double Numero = 0.489698 Numero = FormatNumber(Numero, 2, vbFalse) MsgBox Numero
Formatea 1.958754 a 1,96
Funcin Format:
La funcin Format es mas completa que las anteriores funciones, porque puede manejar mas tipos de datos, y no devuelve solo cadenas, esta tambin puede devolver nmeros y fechas.
9 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
En el primero debemos colocar cualquier expresin vlida. El segundo es opcional y a continuacin veremos una descripcin de los formatos de VB: GeneralNumber: Devuelve el nmero sin formato. Currency: Devuelve el nmero en formato moneda, con el smbolo "$" y 2 decimales a las derecha. Fixed: Devuelve como mnimo un dgito a la izquierda y 2 ala derecha del decimal. Standar: Similar a Fixed pero incluye un separador de miles. Percent: Multiplica el nmero por cien y le agrega el smbolo "%" True/False: Devuelve Verdadero para un valor distinto de 0,y Falso para 0. On/OFF: Devuelve "Activado" para un valor distinto de 0, y "Desactivado" para 0. La forma de pasar el parmetro es entre comillas. Ejemplo:
Nota: Si ingresamos un nmero decimal, debemos utilizar el "." y no la coma "," ya que la coma determina el comienzo de otro parmetro dentro de la funcin y Visual basic dara error de sintaxis
Ejemplos de los principales Formatos con nombre para el manejo de Fechas y Horas: Funciones para Fechas
Dim cadena As String cadena = Format("06/08/78", "General Date") ' Devuelve: "06/08/1978" cadena = Format("19/08/79", "Long Date") ' Devuelve : "Jueves 19 de Agosto de 1979". cadena = Format("19/8/79", "Medium Date") ' Devuelve: "19-Ago-1979" cadena = Format("17:08", "Short Time") ' "05:08" cadena = Format("17:08", "Medium Time") ' "05:08 PM" cadena = Format("17:08", "Long Time") ' "05:08:00 PM"
Ejemplos El siguiente ejemplo utiliza la funcin DateDiff para mostrar el itervalo entre dos fechas. El intervalo lo
10 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
muestra en segundos , minutos, dias, semanas meses y aos, como muestra el siguiente grfico
Option Explicit ' recibe las dos fechas como parmetros '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub Calcular(Fecha_Inicial As Date, _ Fecha_Final As Date) Const Formato As String = "#,##0" Me.Cls Me.Print "Calcular Intervalos entre las fechas " & Fecha_Inicial & _ " hasta :" & Fecha_Final & vbNewLine & String(150, "-") & vbNewLine Me.Print Format(DateDiff("s", Fecha_Inicial, Fecha_Final), Formato) & " segundos" Me.Print Format(DateDiff("n", Fecha_Inicial, Fecha_Final), Formato) & " minutos" Me.Print Format(DateDiff("h", Fecha_Inicial, Fecha_Final), Formato) & " horas" Me.Print Me.Print Me.Print Me.Print End Sub Private Sub Command1_Click() ' le pasa las dos fechas a la funcin Call Calcular("01/01/2000", Date) End Sub Private Sub Form_Load() Me.AutoRedraw = True Command1.Caption = "calcular intervalos " End Sub Format(DateDiff("y", Fecha_Inicial, Fecha_Final), Formato) & " dias" Format(DateDiff("WW", Fecha_Inicial, Fecha_Final), Formato) & " semanas" Format(DateDiff("m", Fecha_Inicial, Fecha_Final), Formato) & " meses" Format(DateDiff("yyyy", Fecha_Inicial, Fecha_Final), Formato) & " aos"
' agrega 10 aos a la fecha actual MsgBox DateAdd("yyyy", 10, Date) ' Agrega cinco meses a la fecha actual MsgBox DateAdd("m", 5, Date) ' resta 1 dias a la fecha actual ( usa el signo -) MsgBox DateAdd("y", -1, Date)
Nota: para restar, usar el signo negativo, como se usa en el ltimo ejemplo. Para poder restar y agregar segundos a una hora, usar en el parmetro intervalo la "S", para minutos usar la "n", para horas la "h", para restar y sumar semanas la "ww"
En el siguiente enlace pods ver algunos otros ejemplos que trabajan con dichas funciones
11 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
Funciones para trabajar con fechas en visual basic Calcular edad de una persona usando DateDiff Averiguar con Dateserial, el Primer y ltimo da de un mes
Dim Cadena As String Cadena = Date ' Devuelve el da del sistema en este formato: "02/08/2004" Cadena = Time ' Devuelve la hora del sistema en este formato: "17:32:51" 'Funciones para establecer la fecha u hora de la PC: Date = (La fecha que queremos establecer) Time = (La hora que queremos establecer)
Visual Basic posee 2 tipos de funciones para presentar mensajes, ellas son MsgBox e InputBox.
Funcin InputBox:
La funcin InputBox presenta un mensaje al usuario, permitindole ingresar un valor en una caja de texto:
Como se dijo la funcin InputBox presenta un cuadro de dilogo donde el usuario puede ingresar un texto y luego aceptar o cancelar dicho cuadro de dilogo. Los parmetros principales de esta funcin son:
El parmetro Prompt especfica la leyenda que mostrar la caja de mensajes. El parmetro Title especifica el ttulo que llevar el cuadro de dilogo. El parmetro Default es el texto que mostrar la caja de texto.
El aspecto mas importante de InputBox es que nos devuelve una cadena con lo que haya ingresado el usuario en la caja de texto. Luego podemos realizar una tarea especfica dependiendo del valor devuelto. Ejemplo:
Dim retorno As String retorno = InputBox("Ingrese algo en la caja de texto", "Ejemplo") MsgBox "Usted ingres:" & retorno
12 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
En el ejemplo anterior, en la variable Retorno se almacenar el valor que haya ingresado el usuario cuando haga Click en el botn de Aceptar. Cuando el usuario presiona Candelar, el InputBox devuelve una cadena vaca. Esto es importante tenerlo en cuenta para realizar una o tal accin Si quiseramos por ejemplo desplegar un InputBox, y que este no se cierre hasta que el usuario si o si haya ingresado un valor, podemos hacerlo de la siguiente forma, utilizando una condicin en un bucle Do Loop
Private Sub Form_Load() Dim Dato As String ' Hasta que no se ingrese un dato, _ el InputBox no se cerrar Do Dato = InputBox("Ingresar algun dato", " Ejemplo ") Loop Until Dato <> "" 'Muestra el valor MsgBox Dato, vbInformation End Sub
Enlace relacionado :
InputBox con PasswordChar
Funcin MsgBox:
La funcin MsgBox, que ya se vi varias veces en distintos ejemplos, es muy fcil de usar y se utiliza para mostrar distintos tipos de mensajes. Ejemplos de mensajes o cajas de texto con la funcin MsgBox que podemos mostrar:
Como se ve en los grficos anteriores, con MsgBox podemos tener variedad a la hora de mostrar un determinado mensaje, utilizando para ello las diferentes constantes que incorpora la funcin. Los parmetros mas importantes son: Title : Es la leyenda que aparecer en el ttulo del mensaje. Texto : Es el Texto que mostrar el mensaje. Botones: En este parmetro se colocan las constantes que determinarn si la caja tiene uno o varios botones y el tipo de mensaje: informativo, de exclamacin de alerta etc... Cuando escribimos
13 de 14
04/09/2013 20:04
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5....
la coma dentro de la funcin en el parmetro botones, Visual Basic despliega una lista con las opciones o constantes que podemos utilizar.
1. Ejemplo que muestra como utilizar la funcin Ucase y Lcase para convertir un texto a
mayscula o minscula.
2. Ejemplo muy simple que utiliza las funciones LTrim, RTrim y Trim para eliminar espacios vacos
en una cadena de texto
3. Ejemplo que utiliza la funcin Chr para mostrar en un control label la tecla que presionemos,
utilizando el evento keypress del formulario.
4. Este ejemplo muestra como podemos localizar una cadena de texto dentro de otra utilizando la
funcin InsTr
5. Muestra un ejemplo de como usar las funciones Left y Right para extraer partes de una cadena
a partir de otra cadena.
6. Ejemplo para ver las funciones Randomize y Rnd , para generar nmeros aleatorios, a partir de
un valor mnimo y un valor mximo.
8. Programa de ejemplo que utiliza la funcin Date para establecer la fecha del sistema 9. Muestra como utilizar un mensaje de informacin en caso de que ocurra un error en tiempo de
ejecucin, utilizando la sentencia GoTo
10. Ejemplo que muestra como utilizar un mensaje con dos botones y ejecutar una instruccin
determinada de a acuerdo a una estructura If-Then-Else Volver al men del tutorial
Buscar en Recursos vb
Desarrollo de Software Somos el equipo de desarrollo Java y tecnologas web de Connectis Arg. www.somospnt.com Cursos Linux- Open Source Operador Administrador Seguridad Red Hat Debian Nagios Apache Tomcat insidetech.com.ar Sensores - PLCs - HMI Fabricando en Argentina desde 1990 ECFA - Sunx - Panasonic - Nais www.ecfa.com.ar Soluciones tecnolgicas Solucines de trazabilidad y control. Equipamiento e insumos. www.bdev.com.ar
14 de 14
04/09/2013 20:04