CIE EXORDIO CERO MAYA LIBRO LIBRE HUATAPERA PROFESOR ESCRITOR
                          












 



 


     

 

 

 

 

 










.

 

Funciones de cadenas

FUNCIONES CON NÚMEROS

Operadores Lógicos

Otras Funciones con números

Generación de números aleatorios

Funciones con fechas.

Función FORMAT


 

Funciones de cadenas

 

Se denomina CADENA a una sucesión de caracteres.  Una cadena puede tener uno o varios caracteres alfanuméricos. Una cadena es también una sucesión de números.

 

Ejemplo de cadenas:

 

Curso de Visual Basic

abcdefghijklmnopqrstuvwxyz1234567890

123456789

 

Hagamos una distinción entre una cadena que contenga números y un número.  Un número tiene un valor, pero también tiene una presentación escrita. El valor es algo que estará en el ordenador como una sucesión de bits. Dependiendo de como lo hayamos declarado, tendrá mas o menos bits. Pero esa información no es un número legible por el usuario. Lo que sí es legible por el usuario es la representación en numeración decimal (u octal, o hexadecimal, o incluso en binario) de ese número. Esa representación del número en un determinado sistema de numeración es una cadena.

 

Así, el número nueve, que en la memoria del ordenador será una sucesión de bits, el ordenador puede presentárnoslo como:

 

            9                     En numeración decimal

            9                     En numeración hexadecimal

            11                   En numeración octal

            1001               En numeración binaria

 

Esas formas de presentarnos el número son CADENAS de caracteres. El valor del número dentro del ordenador es un NUMERO.

 

Para presentar un número en la pantalla, el ordenador debe convertirlo previamente a una cadena.

 

Cuando introducimos un valor numérico por teclado o pantalla, el ordenador para hacer operaciones con él, debe transformarlo a un número.

 

Estas consideraciones nos llevan a las dos primeras funciones con cadenas:

 

            Str      (número)                    Convierte un número a una cadena en numeración                                                      decimal.

 

            Val      (cadena numérica)   Obtiene el valor (el número) correspondiente a esa                                                      cadena.

 

Ejemplos

 

            Variablenumerica = Val (TextBox1.Text)

 

            Este ejemplo convierte la cadena de caracteres (numéricos) que hubiese en la caja de texto TextBox1 en un número, y asocia este número a la variable Variablenumerica.

            Si el contenido de la caja de textos no fuesen caracteres numérico (abcd, por ejemplo), Variablenumerica  tomaría el valor 0.

 

 

            Label1.Caption = Str (Variablenumerica)

 

            Este ejemplo pondría en la etiqueta Label1 los caracteres correspondientes al valor que tuviese la variable Variablenumerica .

 

Nota para recordar: Siempre habrá que convertir un número a una cadena cuando queramos presentarlo en la pantalla. Siempre habrá que convertir a número la cadena de caracteres numéricos que hayamos introducido por teclado o por pantalla, cuando queramos operar con ese número. Un Label, cuando tiene que presentar un único número, no le pedirá que se lo convierta a cadena, pues VB hace automáticamente esa conversión. Sin embargo, cuando tiene que presentar un número, y además un texto en el mismo Label, VB no realizará automáticamente ese cambio, por lo que le dará un error. Le recomiendo que convierta los números a variables de cadena siempre que los quiera presentar en un Label o TextBox.

 

Existe una función mas amplia que Str. Se trata de Cstr.  Esta función no solamente transforma un número a una cadena, como hace Str, sino que convierte cualquier tipo de variable a una variable tipo String (cadena).

 

Esta función transforma, por ejemplo, una variable tipo Booleana en una variable de cadena, devolviendo la cadena “Verdadero” si el valor de la variable booleana es True, y “Falso” si es False.

 

Puede también transformar a una cadena de caracteres el valor de un CheckBox o de un OptionButton. En estos casos devuelve 0 y 1 para el CheckBox (Desactivado / Activado) y Verdadero ó Falso  para el OptionButton (Activado / Desactivado)

 

label1.Caption = CStr(booleana)   Label1.Caption = Verdadero    si booleana es true

                                                           Label1.Caption = Falso     si booleana es False

 

Label2 = CStr(Check1.Value)                   Label2.Caption = 1      si Check1 está activado

                                                           Label2.Caption = 0      si Check1 está desactivado

 

Label3 = CStr(Option1.Value)                   Label3.Caption = Verdadero   si Check1 está activado

                                                           Label3.Caption = Falso      si Check1 está desactivado

 

Si se aplica Cstr  a una variable tipo Fecha/Hora devuelve la fecha / Hora en formato corto.

 

Mas funciones de cadena:

 

Left (cadena, n)

Extrae los n primeros caracteres de una cadena, comenzando por la izquierda.

 

            Si cadena = Curso de Visual Basic          (Para todos los ejemplos)

 

            Resultado = Left (cadena, 10)                   ---->     Resultado = Curso de V

           

            Right (cadena, n)     Extrae lo n últimos caracteres de la cadena

 

            Resultado = Right (cadena, 10)                ---->     Resultado = sual Basic

 

            Mid  (cadena, m, n) Extrae n caracteres de la cadena, siendo el primer carácter                                       extraído el que ocupa el lugar m.

           

            (Vea Instrucción Mid mas abajo)

 

            Resultado = Mid (cadena, 3, 10)   ---->     Resultado = rso de Vis

 

 

LCase (cadena)                  Devuelve otra cadena igual, pero con todos los

caracteres en minúsculas.  (LCase = Lower Case)

 

            Resultado = Lcase (cadena)         ---->     Resultado = curso de visual basic

 

 

UCase (cadena)                  Devuelve otra cadena igual, pero con todos los

caracteres en mayúsculas.  (UCase = Upper Case)

 

            Resultado = UCase (cadena)        ---->     Resultado = CURSO DE VISUAL BASIC

 

 

            Len (cadena)                       Devuelve la longitud de la cadena

 

            Resultado = Len (cadena)  ---->     Resultado = 21

 

            LenB (Cadena)                   Devuelve el número de Bytes empleados para almacenar la

cadena. Sorpréndase, es el doble que Len (Cadena)

 

            String (n, carácter)  Devuelve una cadena de n caracteres como el indicado

 

            Resultado = String (8, "a")             ---->     Resultado = aaaaaaaa

 

            Resultado = String (8, Chr(65))                ---->     Resultado = AAAAAAAA

 

            Resultado = String (8, 65)             ---->     Resultado = AAAAAAAA

 

            Space            (n)                   Devuelve una cadena formada por n espacios.

 

            Resultado = "A" + Space (6)+ "B"            ---->     Resultado = A      B

 

           

            LTrim                        Elimina los posibles espacios que tenga una cadena por su                                      izquierda.

 

            Rtrim                         Elimina los posibles espacios que tenga una cadena por su                                      derecha.

 

            Trim                           Elimina los espacios que tenga una cadena, tanto por su                                           izquierda como por su derecha. (No elimina los espacios

                                               centrales de la cadena)

 

            Estas tres funciones se emplean para quitar los posibles espacios que pueden resultar de una entrada de datos. Tienen especial importancia cuando se toman los datos de un archivo o base de datos, donde fueron introducidos por otro programa.

 

            No se pone ningún ejemplo de estas funciones, pues sería difícil verlo impreso.

 

InStr (cadena, cadena1)                Busca la cadena1 dentro de cadena y devuelve el número de orden dentro de cadena donde se encuentra la primera letra de cadena1

 

            Resultado = InStr (cadena, "sua")            ---->     Resultado = 12

 

 

            StrConv        Convierte una cadena de caracteres en otra, según las instrucciones

que le sigan. Puede sustituir a UCase  o  LCase si la instrucción es

UpperCase o LowerCase respectivamente, o poner la primera letra de      todas las palabras de la cadena en mayúsculas, si la instrucción es    ProperCase.

 

            Resultado = StrConv (cadena, UpperCase)      ----> Resultado = CURSO DE                                                                                                      VISUAL BASIC

 

            Resultado = StrConv (cadena, LowerCase)      ----> Resultado = curso de visual                                                                                                 basic

 

            Resultado = StrConv (cadena, ProperCase)     ----> Resultado = Curso De Visual                                                                                               Basic

Instrucción Mid

 

Mid puede usarse también para cambiar el contenido de una cadena. Observe la sutileza entre Mid como Función de cadena y Mid como Instrucción.

 

La Instrucción Mid reemplaza un número especificado de caracteres en una variable de cadena con caracteres de otra cadena.

 

Sintaxis                      Mid(cadena1, inicio[, longitud]) = cadena2

 

            Resultado Mid (cadena, 7,2)=”Sobre”                  ---- > Resultado = Curso sobre Visual

Basic

 

FUNCIONES CON NÚMEROS

_________________________

 

Visual Basic puede operar con números tal como lo haría cualquier persona. Conoce las 4 reglas, y puede utilizar paréntesis de la misma forma que los escribimos sobre el papel.

 

            Los operadores que utiliza para las operaciones básicas son:

 

            +          Suma

            -           Resta

            *          Multiplicación

            /           División

            \           División sin decimales       

            Mod    Resto de una división

            ^          Eleva a un exponente

 

            Ejemplos

 

            Resultado = 12 + 15                        ---->     Resultado = 27

            Resultado = 15 - 12             ---->     Resultado = 3

            Resultado = 15 * 12             ---->     Resultado = 180

            Resultado = 15 / 12             ---->     Resultado = 1.25

            Resultado = 15 \ 12             ---->     Resultado = 1

            Resultado = 15 Mod 12                  ---->     resultado = 3

            Resultado = 12 ^ 2               ---->     Resultado = 144

 

            resultado = ( ( 4 * 3 ) / 2 ) ^ 2          ---->     Resultado = 36

 

Estos operadores se denominan Operadores aritméticos.

 

Existen otras operaciones que se pueden realizar con números: comparaciones. Los operadores que realizan comparaciones se denominan Operadores relacionales.  El resultado de las operaciones realizadas con estos operadores solamente admiten dos resultados: True  (Cierto) o False  (Falso)  Estos operadores son:

 

            =          Igual que

            <>       No igual que

            <          Mayor que

            <=       Mayor o igual que

            >          Menor que

            =>       Igual o menor que

 

Estos operadores se suelen utilizar en estructuras de programa donde se tome una decisión.

 

El operador = puede usarse también para comparar cadenas o fechas.

 

Operadores Lógicos

 

Estos operadores sólo tienen sentido cuando hablemos de variables Booleanas, es decir, aquellas que solamente pueden tomar los valores cero y uno.

 

            Operador       Función          Devuelve True si       Devuelve False si

 

            And                Función AND            A=True y B=True      Cualquier otro caso

           

            Or                   Función OR   A=True o B=True      A=False y B=False

           

            Xor                 Función XOR            A=True y B=False    A=True y B=True

                                                           A=False y B=True    A=False y B=False

 

            Eqv                F. Equivalente           A=True y B=True      A=True y B=False

                                                           A=False y B=False  A=False y B=True

 

            Imp                 Implicación    A=True y B=True      A=True y B=False

                                                           A=False y B=True

                                                           A=False y B=False

 

            Not                 Negación       A=False                     A=True

 

            Like                Igualdad         A=True                                  A=False

 

 

Otras Funciones con números

 

            CInt                Parte entera  Devuelve la parte entera de un número con decimales

 

            Abs                Valor Absoluto          Devuelve el valor absoluto de un número

 

            Sgn                Signo             Devuelve el signo de un número

 

            Sqr                 Raíz cuadrada          Devuelve la raíz cuadrada de un número

 

            Exp                Exponenciación        Devuelve el número elevado al exponente indicado

 

            Log                Logaritmo      Devuelve el logaritmo natural de ese número

 

Trigonométricas

 

            Sin                 Seno              Devuelve el valor del seno de un ángulo (Expresado

                                                           en radianes)

 

            Cos                Coseno                      Devuelve el coseno de un ángulo (En radianes)

 

            Tan                Tangente       Devuelve la tangente de un ángulo

 

            Atn                 Arco Tang.     Devuelve un arco cuya tangente sea el número

                                                           (Angulo en radianes)

 

 

Una función curiosa

 

            Timer             Tiempo acumulado  Devuelve el tiempo (en segundos) que ha                                                                      pasado desde las 12 de la noche.

 

Generación de números aleatorios

 

            Randomize (Numero)        Inicia el generador aleatorio tomando como dato de partida el                                              Numero. Devuelve el resultado en una variable llamada Rnd.

 

NOTA MUY IMPORTANTE.- Los números aleatorios generados de esta forma son siempre iguales, eso sí, dependiendo del número que se le introduzca como parámetro. Esta generación de números no produce números aleatorios pues como se dijo, dependen del numero que se meta como parámetro, y si este se repite, se repite la sucesión de números que nos crea el generador aleatorio.

 

La forma de obtener números realmente aleatorios es introducir como parámetro un número que sea variable con el tiempo. Ese número no puede ser otro que el número timer visto antes. Y siempre con la precaución de que medie mas de un segundo entre dos instrucciones Randomize. La función toma entonces la forma:

 

            Randomize Timer

 

            La función Randomize devuelve una variable Rnd con un número comprendido entre 0 y 1 (Nunca será 0 ni 1) Leyendo el valor de la variable sucesivas veces, se puede obtener una sucesión de números aleatorios. No es necesario ejecutar la instrucción Randomize Timer cada vez que se quiera obtener un dato de la variable Rnd.

 

Un ejemplo. Generador de números para la Lotería Primitiva

 

Supongamos que tenemos un formulario con una etiqueta de nombre Label1, un botón de comando de nombre Command1. Cuando hagamos click sobre el botón de comando deberá generar un número comprendido entre el 1 y el 49. En el procedimiento click de Command1 pondremos el siguiente código:

 

Private Sub Command1.click

 

Randomize Timer

A = Rnd

A = Rnd * 100

A = CInt(A)

Do While A > 49

A = A - 49

Loop

Do While A < 1

A = A + 49

Loop

Label1.caption = A

End Sub

 

Realice este pequeño programa, con la instrucción Randomize Timer y sin ella.

 

 

Funciones con fechas.

 

Las fechas son cadenas especiales. Visual Basic sabe obtener y tratar la información relativa a la fecha y la hora. Dispone para ello de una declaración de variable: Date. Una variable declarada como date puede contener una fecha, una fecha y una hora o una hora solamente.

 

            Date               Devuelve la fecha de hoy. Esta fecha la toma del reloj del ordenador.

 

            Time              Devuelve la hora actual.

 

            Now               Devuelve la fecha y hora actual.

 

            WeekDay      Devuelve el día de la semana (En número, 1=Domingo, 2=Lunes,...)

 

            Day                Obtiene el día, a partir de una fecha        

 

            Month                       Obtiene el mes a partir de una fecha. 

 

            Year               Obtiene el año a partir de una fecha.       

 

            Hour              Obtiene la hora a partir de una hora        

 

            Minute                       Obtiene el minuto a partir de una hora.    

 

            Second         Obtiene el segundo a partir de una hora.

 

            DateAdd       Añade un intervalo de tiempo a una fecha

 

            DateDiff        Obtiene el intervalo de tiempo entre dos fechas

 

            DatePart       Devuelve una parte de una fecha  (semana, trimestre, etc.)

 

            DateSerial    Compone una fecha a partir de parámetros relativos

 

            TimeSerial    Compone una hora a partir de parámetros relativos.

 

            DateValue    Devuelve una fecha a partir de un dato que se le parezca y VB pueda

                                   obtener de él una fecha válida

 

 

Mediante estas instrucciones podemos obtener el dato necesario de una fecha u hora. Por ejemplo, para obtener el día de hoy solamente:

 

            Día = Day (Now)     Día será un número

 

El día de la semana lo obtendríamos

 

            Diasemana = WeekDay (Now)                Diasemana será un número

 

DateValue, una instrucción que le sacará mucho provecho

 

            Fecha = DateValue (120796)                  

            Fecha = DateValue (12 07 96)                 Fecha =12/07/96


 

Función FORMAT

 

Esta función permite presentar cadenas de numéricas o fechas de una determinada forma. Permite establecer el Formato de esa cadena.

 

Si recurre a la ayuda de VB acerca de esta función se va a enterar muy poco de lo que puede dar de sí. La sintaxis que presenta es :

 

Format(expresión[, formato[, primerdíadesemana[, primerasemanadelaño]]])

 

Lo mejor que puede hacer con esta definición de la sintaxis de Format es olvidarla. No le aclara mucho lo que se puede hacer con Format.  La función Format se usa para poner una fecha en un determinado formato. Con la expresión :

 

            FechadeHoy = Format (Now, “yyyy-mm-dd”)

 

la variable FechadeHoy tendrá el valor  1998-05-21, que se refiere al día 21 de mayo de 1998, según el formato recomendado por la norma ISO-8601 para la presentación de fechas. Si hubiésemos puesto la expresión  FechadeHoy = Format (Now, “dd/mm/yy”) , la variable FechadeHoy contendría el valor 21/05/98 referido al día citado.

 

Las posibilidades de Format llegan también al campo de las cadenas numéricas. Por ejemplo la cifra 123456 se transformará en las siguientes expresiones, según como empleemos la función Format

 

                        Variable = Format(123456, "Currency")     Variable = 123.456 Pts

                        Variable = Format(123456, "Standard")     Variable = 123.456,00

 

Veamos ahora con un poco mas de conocimiento la sintaxis de Format

 

Variable = Format (expresión[, formato[, firstdayofweek[, firstweekofyear]]])

 

Donde

expresión es una cadena o fecha válida

formato es uno de los formatos predefinidos  (Standard, Currency, etc. Vea mas abajo)

 

firstdayofweek. Especifica el primer día de la semana. Puede tomar uno de estos valores o constantes :

 

Constante      Valor              Descripción

 

vbUseSystem           0         El especificado en el sistema operativo.

VbSunday      1                    Domingo (valor por defecto)

vbMonday      2                     Lunes

vbTuesday     3                     Martes

vbWednesday           4         Miércoles

vbThursday    5                     Jueves

vbFriday         6                     Viernes

vbSaturday    7                     Sábado

 

firstweekofyear         Especifica cual es la primera semana del año. Puede tomar uno de los siguientes valores o constantes :

 

Constante                  Valor   Descripción

 

vbUseSystem                       0          Usa el valor del sistema operativo

vbFirstJan1               1          La primera semana es la que contiene al día 1 de Enero(Valor

por defecto

vbFirstFourDays       2          La primera semana es la que contiene al menos, 4 días de ese

año (Rec. ISO - 8601)

vbFirstFullWeek       3          La primera semana es la que tiene todos sus días en ese año

  

 

No se complique la vida con el tema del primer día de la semana ni la primera semana del  año. No lo usará con frecuencia. Centrémonos mas en el parámetro Formato. Puede tomar muchos valores. Veamos los principales. Primero para números

 

Observe que usamos la expresión Variable =Format (1234567,”Formato”) para todos los ejemplos de números.

 

Para poner los números separados por millares :

 

            Variable = Format(1234567, "##,###,###")       Variable = 1.234.567

                  

(Cada carácter # indica que ahí va un número. El separador debe ser una coma, no un punto, aunque esto depende del idioma que esté usando)

 

Puede poner una de estas expresiones, eso si, siempre entre comillas dobles :

           

General Number       Muestra el número tal como lo tecleó

Currency                    En formato de la moneda de su sistema operativo

Fixed                          Sin separador de millar y dos decimales  (1234567,00)

Standard                   Con separador de millares y dos decimales (1.234.567,00)

Percent                                  Multiplica el número por cien y lo presenta cono

porcentaje(123456700,00%)

Scientific                   Usa notación científica  (1,23E+06)

.

Para fechas    (Observe que usamos el ejemplo Format(Now, “Formato”) y Now = 21/07/98

a las 22:16:00  y pico)

 

General Date            21/07/98 22:16:00

Long Date     martes 21 de julio de 1998

Medium Date            21-jul-98

Short Date     21/07/98

yyyy-mm-dd   1998-05-21

yy-mm-dd       98-07-21

Long Time     22:19:53

Medium Time            10:20 PM

Short Time     22:20

hh :mm :ss     22 :21 :29

hh :mm                       22 :21

 

Format dispone de mas opciones. Sería muy largo explicarlas aquí. Para mas información, en la WEB de Microsoft puede encontrar mas formatos posibles.