Sei sulla pagina 1di 76

Visual Basic - Gua del Estudiante

INTRODUCCIN Antecedentes histricos. ___________________________________

El lenguaje de programacin BASIC (Beginner's All purpose Symbolic Instruction Code ) naci en el ao 1964 como una herramienta destinado a principiantes, buscando una forma sencilla de realizar programas, empleando un lenguaje casi igual al usado en la vida ordinaria ( en espaol o ingls), y con instrucciones muy sencillas y escasas. Teniendo en cuenta el ao de su nacimiento, este lenguaje cubra casi todas las necesidades para la ejecucin de programas. Tngase en cuenta que las mquinas existentes en aquella poca estaban estrenando los transistores como elementos de conmutacin, los ciclos de trabajo llegaban a la impensable cifra de 10,000 por segundo y la memoria no pasaba de unos pocos ks en toroides de ferrita (8086 Intel).

La evolucin del BASIC por los aos 70 fue escasa, dado el auge que tomaron en aquella poca lenguajes de alto nivel como el FORTRAN y el COBOL. En 1978 se defini una norma para unificar los Basics existentes crendose la normativa BASIC STANDARD.

Con la aparicin de los primeros ordenadores personales, dedicados comercialmente al usuario particular, all por la primera mitad de los ochenta, el

BASIC resurgi como lenguaje de programacin pensado para principiantes, y muchos de estos pequeos ordenadores domsticos lo usaban como nico sistema operativo (Sinclair, Spectrum, Amstrad).

Con la popularizacin del PC, salieron varias versiones del BASIC que funcionaban en este tipo de ordenadores (Versiones BASICA, GW-BASIC), pero todas estas versiones del BASIC no hicieron otra cosa que terminar de rematar este lenguaje. Los programadores profesionales no llegaron a utilizarlo, habida cuenta de las desventajas de este lenguaje respecto a otras herramientas (PASCAL, C, CLIPPER). El BASIC con estas versiones para PC lleg incluso a perder crdito entre los profesionales de la informtica.

Las razones para ello eran obvias:

- No era un lenguaje estructurado. - No existan herramientas de compilacin fiables. - No dispona de herramientas de intercambio de informacin. - No tena libreras. - No se poda acceder al interior de la mquina. - Un largo etctera de desventajas respecto a otros lenguajes de programacin.

Tal fue ese abandono por parte de los usuarios, que la aparicin del QuickBASIC de Microsoft, una versin ya potente del BASIC, que correga casi todos los defectos de las versiones pas prcticamente inadvertida, a no ser porque las ltimas versiones del sistema operativo MS-DOS 3.0 incluan una versin de Quick-BASIC algo recortada (Q-Basic) como un producto mas dentro de la amplia gama de ficheros ejecutables que acompaan al sistema operativo, y aprovecha de el editor de textos (Cada vez que se llama al EDIT estamos corriendo el editor del Q-Basic).

Esta versin del popular BASIC ya es un lenguaje estructurado, lo que permite crear programas modularmente, mediante subrutinas y mdulos, capaz de crear programas ya competitivos con otros lenguajes de alto nivel. Sin embargo llegaba tarde, pues los entornos MS-DOS estaban ya superados por el entorno grfico Windows.

Sin embargo algo haba en el BASIC que tentaba a superarse: su gran sencillez de manejo. Si a esto se le aade el entorno grfico Windows, el aprovechamiento al mximo de las posibilidades de Windows en cuanto a intercambio de informacin, de sus libreras, de sus drivers y controladores, manejo de bases de datos, etc. el producto resultante puede ser algo que satisfaga todas las necesidades de programacin en el entorno Windows. La suma de todas estas cosas es VISUAL - BASIC. Esta herramienta conserva del BASIC de los aos 80 nicamente su nombre y su sencillez, y tras su lanzamiento al mercado

ydesde luego las versiones 6 y Net, la aceptacin a nivel profesional hizo borrar por fin el "mal nombre" asociado a la palabra BASIC.

Actualmente se est comercializando la versin VB Net de este producto. Desde su salida al mercado, cada versin supera y mejora la anterior. Dados los buenos resultados a nivel profesional de este producto, y el apoyo prestado por el fabricante para la formacin de programadores, Visual-Basic se ha convertido en la primera herramienta de desarrollo de aplicaciones en entorno Windows, apoaderandose del 85 % de los desarrollos globales.

Es obligado decir sin embargo, que sigue siendo BASIC. No se pueden comparar sus prestaciones con otros lenguajes cuando deseamos llegar al fondo de la mquina y controlar uno a uno sus registros. No es ese el fin perseguido con VB y si es necesario llegar a esas precisiones ser necesario utilizar otro lenguaje que permita bajar el nivel de programacin por ejemplo Visual-C, o realizar libreras (DLLs) que lo hagan. En la mayor parte de las aplicaciones, las herramientas aportadas por VB son mas que suficiente para lograr un programa fcil de realizar y de altas prestaciones.

INTRODUCCIN HISTRICA AL ENTORNO WINDOWS.


Las interfaces grficos de usuario (GUI) han revolucionado el mundo informtico. Quiz ms importante a largo plazo es el hecho de que las aplicaciones Windows tienen una interfaz de usuario consistente, es decir, los

usuarios tienen ms tiempo para dominar la aplicacin sin tener que preocuparse de las teclas que deben pulsarse dentro de los mens y cuadros de dilogo. Todo esto tiene un precio; antes de la existencia de Visual Basic, el desarrollo de aplicaciones para Windows era mucho ms complicado que desarrollar aplicaciones para DOS. Los programadores tenan que preocuparse ms de lo que estaba haciendo el ratn, de dnde estaba el usuario dentro de un men y de si estaba realizando un clic o un doble clic en un punto determinado. Desarrollar aplicaciones para Windows requera expertos programadores en C, e incluso stos tenan problemas. Visual Basic ha cambiado esta situacin. Se pueden desarrollar aplicaciones para Windows ms rpidamente. Los errores de programacin no se generan tan frecuentemente y, si lo hacen, son ms sencillos de depurar. Adems incluye dos conceptos importantes:
y

Un mtodo visual de creacin de aplicaciones, incluyendo formularios (ventanas), controles y, componentes del formulario. La habilidad de asociar cdigo directamente a cada evento de cada elemento del diseo visual.

DESARROLLO DE APLICACIONES EN WINDOWS.


Windows 95 ha sido diseado para tomar las ventajas de las nuevas tecnologas de hardware y software. Entre las innovaciones ms importantes de la programacin con Windows 95 tenemos:
y

API (Application Programming Interface) de 32 bit, compatible con la API soportada en Windows NT.

y y y y y y y

Un modelo de memoria sin muchas de las restricciones de versiones anteriores de Windows, lo que significa que las cadenas ya no estn limitadas a 65.535 caracteres, pudiendo alcanzar casi los 2 billones de caracteres de longitud. La capacidad de incrustar objetos OLE entre la inmensa mayora de aplicaciones Windows 95 con solo arrastrar y soltar. La adaptacin de los controles OLE (OCXs) en lugar de los controles VBX para utilizarlos en programacin. Optimizacin del registro central para almacenar informacin de las aplicaciones. sto sustituye a los ficheros INI utilizados en Windows 3.x para mantener informacin acerca del sistema y las aplicaciones. Optimizacin de la implementacin de multimedia, incluyendo sonidos, grficos y animaciones. Introduccin de un nuevo modo de presentacin de las aplicaciones, incluyendo la barra de tareas, controles de ficha y, ficheros de ayuda. Etc.

LA PROGRAMACIN VISUAL Y GUIADA POR EVENTOS. Un programa realizado en DOS es un conjunto de sentencias que se ejecutan de arriba a abajo ms o menos, en el orden que el programador ha diseado. Una aplicacin en Windows presenta todas las opciones posibles en uno o ms formularios para que el usuario elija entre ellas. La secuencia en la que se ejecutarn las sentencias no puede ser prevista por el programador. sto da lugar a la Programacin Orientada a Eventos. Para programar una aplicacin en Windows hay que escribir cdigo separado para cada objeto en general, quedando la aplicacin dividida en pequeos procedimientos, conducido cada uno de ellos por un suceso. Un suceso es una accin reconocida por un objeto (formulario o control) el suceso puede ser causado por el usuario o, indirectamente por el cdigo. En Visual Basic cada formulario y cada control tienen predefinidos un conjunto de sucesos. Cuando ocurren estos sucesos, Visual Basic invoca al procedimiento asociado con el objeto para ese suceso. Para desarrollar una aplicacin en Visual Basic, los pasos que se seguirn son:

y y

1. 2.

Crear la interfaz de usuario. Modificar las propiedades de cada objeto.

3.

Escribir el cdigo asociado a los eventos de cada objeto.

EL ENTORNO VISUAL BASIC. Los elementos que componen la pantalla de Visual Basic son: Barra de mens. Visualiza las rdenes que se utilizan para desarrollar, probar y archivar una aplicacin. Los mens que nos encontramos son:
Archivo contiene las rdenes para trabajar con archivos. Edicin contiene las herramientas que ayudan a escribir el cdigo. Ver da acceso rpido a todas las partes del programa. Insertar permite incluir nuevos mdulos y formularios en la aplicacin. Ejecutar permite verificar la aplicacin mientras se desarrolla. Herramientas controla el aspecto y propiedades del entorno. Complementos contiene las utilidades para el manejo de bases de datos. Ayuda.
y

y y y y y y y

Ventana o barra de herramientas. Facilita el uso a las rdenes ms comunes. De izquierda a derecha los iconos que aparecen permiten:
y y y y y y y y y y y y y y y y

Formulario, crear un nuevo formulario. Modulo ,crear un nuevo mdulo. Se utiliza para crear fragmentos de cdigo independiente del formulario. Abrir Project ,permite abrir un proyecto. Guardar Proyecto, permite guardar un proyecto. Bloquear Controles ,impide que se muevan los controles del formulario involuntariamente. Editor de Mens, visualiza la ventana de diseo de mens. Propiedades, visualiza la ventana de propiedades de los distintos objetos. Examinador de Objetos, muestra las clases, mtodos, propiedades, etc. de los objetos disponibles en la aplicacin. Proyecto, visualiza la ventana de proyecto. Inicio, Interrumpir. Terminar. Alternar Puntos de Ruptura. Inspeccin Instantnea,,visualiza el valor del elemento seleccionado en la ventana de cdigo. Llamadas, visualiza la estructura de llamadas activas. Paso a Paso por instrucciones.

Paso a Paso por procedimientos.

Caja de herramientas. Provee de un conjunto de herramientas que permiten colocar los controles en el formulario durante el diseo del proyecto. Ventana de proyecto. En esta ventana estn especificados los ficheros (formularios, mdulos, etc.) que forman la aplicacin y, dnde se seleccionarn para crearlos o modificarlos. Esto se debe a que hay ficheros que pueden utilizarse en ms de una aplicacin. Adems contiene dos botones: Ver Formulario que visualiza el formulario seleccionado y; Ver Cdigo que visualiza el cdigo del fichero seleccionado. Ventana del formulario. Es la ventana que da lugar a la interfaz de usuario. Es la ventana que se personalizar. Los puntos que aparecen sobre el formulario, forman una rejilla que ayuda a la hora de alinear los controles que se sitan sobre el mismo. Esta rejilla desaparece en tiempo de ejecucin. Para eliminarla en tiempo de diseo se acceder a la opcin Herramientas/Opciones/Ficha Entorno/Mostrar Cuadrcula. Ventana de propiedades. Especifica las propiedades de cada uno de los objetos. En cada momento mostrar las propiedades del objeto seleccionado en el formulario. Est formada por dos partes: la lista desplegable de objetos que visualiza el nombre del objeto seleccionado y, la lista de propiedades del objeto seleccionado.

QU SUCEDE AL EJECUTAR UNA APLICACIN VISUAL BASIC?


Los eventos que tendrn lugar a la hora de ejecutar una aplicacin son: 0.
1. 2. 3. 4. 5.

Form_Initialize
Form_Load Form_Resize Form_Activate Form_GotFocus Form_Paint (solo en el caso de que la propiedad AutoRedraw del formulario est establecida a False)

y, antes de descargar un formulario de memoria, los eventos que tienen lugar son: 0.
1.

Form_Terminate
Form_Unload

CMO FUNCIONA UNA APLICACIN VISUAL BASIC?

Normalmente, se escribe cdigo a los eventos a los que se quiera dar respuesta. Si el evento no tiene respuesta o no se produce, Visual Basic no har nada, es decir no se ejecutar cdigo alguno. Para poder ejecutar cdigo, se tendr que haber dado respuesta a algn evento de algn control y, que dicho evento tenga lugar.

CONCEPTO DE PROYECTO.
Dado que es muy comn en aplicaciones Visual Basic compartir cdigo o formularios personalizados, Visual Basic organiza las aplicaciones en lo que denomina proyectos. Cada proyecto puede tener varios formularios y, el cdigo que activa los controles de un formulario es archivado con el formulario en archivos separados. El cdigo general compartido por todos los formularios de una aplicacin puede ser dividido en varios mdulos, que tambin se archivan separadamente. En Visual Basic 6.0 un proyecto puede tener, adems, mdulos de clase y ficheros de recursos. Aunque Visual Basic almacena separadamente los archivos que forman un proyecto, hace un seguimiento de dnde estn los archivos. Crea un archivo con la extensin .VBP de Visual Basic Program/Project. Visual Basic permite tener un solo proyecto abierto en un momento determinado, es por ello que algunas PC's se bloquean . Los formularios se archivan con la extensin .FRM y contienen una imagen del formulario y, de todos los controles que pertenecen a l, incluidas sus propiedades. Tambin pueden contener subrutinas de manejo de eventos, procedimientos generales, declaraciones de variables y de constantes a nivel de formulario y, procedimientos externos.

Un mdulo estndar contiene cdigo Visual Basic que no est asociado a ningn formulario en particular. Los procedimientos que se encuentran en el mdulo, pueden ser accedidos desde cualquier otro procedimiento de la aplicacin. Se almacenan con la extensin .BAS. Los mdulos de clase tienen la extensin .CLS y contienen cdigo, incluido subrutinas, funciones, mtodos y procedimientos para crear descripciones genricas de objetos. Estos mdulos contienen

propiedades que describen el comportamiento de una clase, as como el cdigo que define las propiedades y los mtodos de la clase. Los archivos de recursos se almacenan con la extensin .RES y contienen bitmaps, cadenas de texto, o cualquier otra informacin que pueda ser cambiada sin tener que reeditar el cdigo de la aplicacin. Un proyecto solo puede contener un archivo de recursos.

Caractersticas Generales de Visual-Basic

Visual-Basic es una herramienta de diseo de aplicaciones para Windows, en la que estas se desarrollan en una gran parte a partir del diseo de una interfase grfica. En una aplicacin Visual - Basic, el programa est formado por una parte de cdigo puro, y otras partes asociadas a los objetos que forman la interfase grfica.

Es por tanto un termino medio entre la programacin tradicional, formada por una sucesin lineal de cdigo estructurado, y la programacin orientada a objetos. Combina ambas tendencias. Ya que no podemos decir que VB pertenezca por completo a uno de esos dos tipos de programacin, debemos inventar una palabra que la defina : PROGRAMACIN VISUAL.

La creacin de un programa bajo Visual Basic lleva los siguientes pasos:

- Creacin de un interfase de usuario. Este interfase ser la principal va de comunicacin hombre mquina, tanto para salida de datos como para entrada. Ser necesario partir de una ventana - Formulario - a la que le iremos aadiendo los controles necesarios.

- Definicin de las propiedades de los controles - Objetos - que hayamos colocado en ese formulario. Estas propiedades determinarn la forma esttica de los controles, es decir, como son los controles y para qu sirven.

- Generacin del cdigo asociado a los eventos que ocurran a estos objetos. A la respuesta a estos eventos (click, doble click, una tecla pulsada, etc.) le llamamos Procedimiento, y deber generarse de acuerdo a las necesidades del programa.

- Generacin del cdigo del programa. Un programa puede hacerse solamente con la programacin de los distintos procedimientos que acompaan a cada objeto. Sin embargo, VB ofrece la posibilidad de establecer un cdigo de programa separado de estos eventos. Este cdigo puede introducirse en unos bloques llamados Mdulos, en otros bloques llamados Funciones, y otros llamados Procedimientos. Estos Procedimientos no responden a un evento acaecido a un objeto, sino que responden a un evento producido durante la ejecucin del programa.

No es necesario entender de momento lo anterior. Visual Basic introduce un concepto nuevo de programacin, y es necesario cambiar hasta el argot del programador. Posiblemente se le habrn acumulado demasiados trminos de una sola vez. Es normal. A poco que siga leyendo ver las cosas mas claras cuando se explique una por una.

PROCEDIMIENTOS DE EVENTO

En Visual Basic existen dos clases de procedimientos: procedimientos generales o procedimientos de evento. Un procedimiento de evento es invocado cuando un objeto en la aplicacin reconoce que el evento ha tenido lugar. Los procedimientos de eventos para un control combinan el nombre del objeto con un subrayado y, el nombre del evento. Po ejemplo cmdOK_Click(). Los procedimientos de eventos para un formulario combinan la palabra reservada Form con un subrayado y, el nombre del evento. Form_Load. Los procedimientos de eventos para un formulario MDI combinan la palabra reservada MDIForm con un subrayado y, el nombre del evento. Por ejemplo MDIForm_Unload. Un procedimiento general indica cmo realizar una tarea determinada. Se ejecutar solo si es invocado especficamente en la aplicacin. VARIABLES. DEFINICIN Y ENTORNO

Basic, desde siempre, al contrario de otros sistemas de programacin, no exigi la definicin previa de una variable. Una variable, como Vd. seguro que conoce, es un nombre que en el programa le asignamos a un dato. Ese dato podr

cambiar. Piense por ejemplo, en un programa consistente en la toma de datos de los alumnos de un centro escolar. Existirn varias variables para poder introducir los datos de los alumnos. Estas variables pueden tener nombre tales como:

Nombre Apellido1 Apellido2 Direccin Telfono DNI

La variable Nombre tomar valores distintos segn vayamos introduciendo los datos de los distintos alumnos. Es posible, que a lo largo de la ejecucin del programa, esta variable Nombre valga:

Jos Pedro Mara Luis

Espero que su intuicin o conocimiento anterior le lleve a conocer el concepto de variable. Mas adelante lo ver mas claro.

Decamos que Basic no exige la definicin previa de las variables. Otras herramientas exigen que se haga as. Por lo tanto es normal encontrar, en otros sistemas de programacin, que un programa comienza de la siguiente forma:

Declare Nombre As String de letras Declare Apellido1 As String Declare Apellido2 As String Declare Direccin As String Declare Telfono As String sucesin de letras Declare DNI As Nmero

'Le dice que Nombre es una sucesin

'Le dice que Telfono es una

'Le dice que DNI es un nmero

Mediante estas declaraciones, el programa sabe de que tipo de dato se trata y por tanto cmo debe trabajar con l. En otros sistemas de programacin distintos de Basic, es necesario realizar esta declaracin antes de introducir una variable.

Basic permite que no se declaren. Cuando a lo largo del programa le introducimos una variable nueva, asume que es una variable y que el tipo es el adecuado para el valor que le estamos introduciendo en ese momento.

Por ejemplo, si Basic encuentra estas instrucciones

DNI=50000000 Nombre ="Pedro" Telfono = "1234567"

entiende que DNI, Nombre y Telfono son variables, que DNI es un nmero (No hemos metido su valor entre comillas), y que Nombre y Telfono son sucesiones de caracteres alfanumricos (su valor est entre comillas)

Esta particularidad de no necesitar declarar las variables hace que sea sencillo introducir una variable nueva. Sin embargo entraa un gran peligro. Imagnese que en un paso posterior del programa, le mandamos escribir esos tres datos anteriores con la instruccin PRINT

Print DNI Print Nombre Print Telwfono

Habr observado en tercer lugar la palabra Telwfono, que por error ha introducido el programador. Basic interpreta que Telwfono es una variable e ir a leer en memoria el valor que tiene. No tendr ningn valor. Por lo tanto no escribir nada y encima no dar ningn aviso de que se ha cometido un error. Nada es gratis en esta vida, y la facilidad para introducir variables se paga con la posibilidad de un error.

Basic ha pensado en ese problema, y se puede solucionar con esta que ser la primera instruccin BASIC que vamos a estudiar:

OPTION EXPLICIT Obliga a declarar previamente las variables que se vayan a usar. De no haberla declarado antes de usarla, el programa dar una comunicacin de error.

TIPOS DE VARIABLES

Las variables pueden ser de los siguientes tipos: (El nmero indicado en segundo lugar indica el nmero de Bytes que ocupa en memoria.)

Booleana (falso) Byte Integer Long

(2)

Admite los valores 0 y 1, o True (verdadero) y False

(1)

Nmeros enteros, en el rango de 0 a 255 (2) Nmeros enteros en el rango de -32768 a 32767

(4)

Nmeros enteros en el rango de -2147483648 a

2147483647 Single Doble Currency String Date Objet Variant (8) (8) (*) (8) (4) (4) Punto flotante, simple precisin

Punto flotante, doble precisin. Entero, con punto decimal fijo (Tpico de monedas) Cadenas alfanumricas de longitud variable o fija Fechas Referencia a objetos (**) Otros tipos de datos

(*) Una variable tipo String ocupa el mismo nmero de bytes que caracteres tenga la cadena. (**) Una variable tipo Variant ocupa 16 bytes si se trata de un nmero y 22 bytes + longitud de la cadena si se trata de un dato tipo cadena de caracteres.

Existen tambin variables definidas por el usuario (Ya ver la sentencia Type). En este tipo de variables se pueden introducir muchos datos de distinto tipo. Los bytes necesarios para almacenar esa variable depender de los datos que se hayan definido.

Dentro de las variables Objet (variables que se refieren a objetos) existe una gran variedad que a estas alturas del curso no debemos complicarnos con ellas. Pero para adelantar algo, veremos que una variable puede ser del tipo Form Formulario - , tipo Picture, etc. etc.

Cada tipo de variable ocupa unos determinados bytes. Si no se define una variable, VB toma como tipo por defecto para la variable el tipo Variant. Este tipo ocupa mas bytes que, por ejemplo, un integer. Si el tipo de dato que vamos a introducir en una variable es un integer, y no la hemos declarado como tal, VB asumir para esa variable que es del tipo Variant, lo que le llevar a gastar mas bytes de memoria (16) que los que necesitara (2) si la hubisemos declarado previamente. Si esa variable va a estar en el rango de 0 a 255, y no declaramos previamente que la variable va a se del tipo Byte, o la declaramos como integer,

p. e., estamos desperdiciando memoria RAM y posiblemente, retardando la ejecucin del programa. Lo mismo podemos decir del resto de las variables, y lo importante que es definirlas y definirlas bien.

NOTA. Observe en la lista anterior que un dato Booleano ocupa 2 Bytes, mientras que un dato tipo Byte ocupa un byte. En muchas ocasiones declaramos variables tipo Boolean con la intencin de que ocupen menos espacio. Paradoja del VB. Si la declaramos como Byte ocupamos menos espacio en memoria. Declarar una variable como Boolean tiene tambin sus ventajas (escribir menos cdigo por lo general cuando necesite leer o escribir una variable tipo Boolean), pero tenga presente esta observacin respecto a los datos Boolean. Puede declarar el tipo de la variable mediante un carcter despus del nombre de la variable. Esta tcnica, obligatoria en Quick-Basic, est en desuso en VB. No es recomendable definir el tipo de esta forma, pues existe un serio peligro de error. De cualquier forma, eso es potestativo del programador y de sus costumbres.

Los caracteres que definen cada tipo de variable son:

Integer

&

Long

Single

Double

Currency

String

Ejemplos Prcticos de declaracin de variables

En Visual Basic, cuando declaramos una variable como String (Cadena de caracteres), no es necesario declarar su longitud. VB aceptar cualquier nmero de caracteres. Si desea evitar que se puedan introducir ms de un determinado nmero de caracteres, debe declarar su nmero. Por ejemplo :

Dim Var1 as String de caracteres

'Var1 puede tener cualquier nmero

Dim Var2 as String * 15 caracteres.

'Var2 puede tener un mximo de 15

En este segundo caso, si se introduce como Var2 una cadena de caracteres con mas de 15 caracteres, Var2 tomar solamente los 15 primeros. Visual basic no presenta ningn aviso de que esa variable ha omitido los caracteres que han sobrepasado la cifra de 15. Si desea que el usuario conozca esa circunstancia, debe introducir el cdigo oportuno para producir el aviso.

La declaracin de variables tipo String con nmero de caracteres predefinido presenta tambin inconvenientes a la hora de tratar esa cadena de caracteres con sentencias tales como Mid, Left y Right, o a la hora de aadir una cadena a otra. La experiencia nos indica que NO merece la pena declarar variables tipo String con el nmero de caracteres prefijado.

En una gran parte de los casos una variable que se compone de nmeros debe declararse como una variable de cadena de caracteres (String), y no como numrica. Cuando pensamos por ejemplo en un nmero de DNI, compuesto por 7 u 8 cifras, un cdigo postal, el nmero de una calle, el piso de un edificio, parecen invitar a que la variable que los contenga sea una variable de tipo numrico (Byte, Integer, Long, ...). Estas variables, aunque su contenido sean nmeros, siempre se deben declarar como String, ya que se tratan en realidad de cadenas de caracteres, aunque estos sean nmeros. Para aclarar mas estas ideas, piense en el nmero del DNI con la letra del NIF incluido, o que el lugar del DNI se deba rellenar con el nmero del permiso de residencia, (lleva letras). Piense en el cdigo postal de una provincia que comienza por 0 ( 08XXX = Barcelona ) . Si la variable que va a contener ese cdigo postal se declara como numrica, el cero de la izquierda lo desprecia, por lo que ese cdigo postal quedara reducido al 8XXX, nmero de 4 cifras que el cartero nunca reconocera como un cdigo postal, que necesariamente ha de tener 5 cifras. Para terminar, piense la forma de introducir en una variable numrica el nmero 32Bis de una calle o el piso S2 de un edificio. O piense en una variable que va a contener un cdigo de un producto. Ese cdigo siempre va a ser un nmero, por ejemplo de 9 cifras. Ha pensado como tratara el ordenador una variable numrica que contiene el cdigo 000100123 ?. El resultado sera que convertira ese cdigo en la cifra 100123, y

Vd. deber buscarse la vida para aadir los ceros iniciales a la hora de sacarlo a una impresora, por ejemplo.

En todos los casos anteriores, el nmero no representa una cantidad numrica, sino un nombre. Lo que ocurre es que ese nombre contiene solamente nmeros.

Qu variables debemos declarar entonces como numricas ? La respuesta es bien sencilla : Aquellas que van a contener datos con lo que vamos a realizar operaciones matemticas.

Las variables booleanas (True/False) pueden en muchos casos sustituirse por una variable del tipo Byte. Si ese datos True / False se va a introducir en una base de datos o en fichero en el disco, puede ser mas prudente poner 0 en vez de False y 1 en vez de True.

Una variable byte ocupa muy poco, simplemente 1 byte como su nombre indica. Pero no puede contener nmeros mayores de 255 ni nmeros negativos.

Cada vez que declare una variable numrica piense en los valores que puede tener, sobre todo cuando esa variable va a ser el resultado de una operacin matemtica. Recuerde el escaso margen de una variable tipo Integer ( de -32768 a 32767)

Si la aplicacin va a tratar moneda, piense en la forma de expresar los nmeros decimales y el nmero de ellos permitidos, as como el redondeo. La variable correcta para este caso es Currency, pero Currency le aade automticamente el tipo de moneda de cada pas (Pts. Para Espaa) lo que con frecuencia es un engorro. Los datos del tipo de moneda los toma del sistema operativo del ordenador, por lo que no se extrae si le expresa el nmero de pesetas en dlares. Cambie el pas en su S. O.

mbito de las variables.

Denominamos mbito de una variable a las partes del programa donde esa variable est declarada. Para entenderlo mejor, veamos someramente la forma de un programa desarrollado en VB.

Un programa VB tiene uno o varios formularios. Cada formulario tiene varios controles. Tanto el formulario como cada uno de sus controles tienen una parte del programa, justamente la parte relacionada con cada uno de los eventos que pueden suceder bien al formulario o a los controles. A estas partes las habamos llamado Procedimientos. Podemos tener procedimientos que no estn relacionados con ningn evento ocurrido al formulario o a sus controles. (Los Procedimientos que iremos insertando a lo largo de la aplicacin)

Aparte de formularios y controles, un programa puede tener Mdulos, y en cada uno de los mdulos podemos insertar cuantos Procedimientos y Funciones queramos. La estructura de un programa VB puede ser de la siguiente forma:

Formulario1 Declaraciones

Formulario2 Declaraciones

Formulario3 Declaraciones

Mdulo1

Modulo2

Declaraciones

Declaraciones Proc. A1 Proc. A2 Proc. A3 Proc. A4 Proc. A5 Proc.B1 Proc.B2 Proc.B3 Proc.B4 Proc.BB1 Proc.C1 Proc.C2 Proc.C3 Proc.C4 Proc.CC1 Proc.CC2 Proc.CC3 Proc.CC4 Proc.D1 Proc.D2 Proc.D3 Proc.D4 Proc.E1 Proc.E2 FuncinE1 FuncinE2 FuncinE3 FuncinE4 FuncinE5 FuncinE6

Proc. AA1 Proc.BB2 Proc. AA2 Proc.B33 Proc. AA3

Si se declara una variable dentro de un procedimiento o Funcin, esa variable "NO SALE" del Procedimiento o Funcin donde se declar. El procedimiento puede estar en un Formulario (Cualquier procedimiento de

un control o un procedimiento creado por nosotros) o en un Mdulo (En este caso, el procedimiento solo puede ser creado por nosotros)

En un Formulario, una variable puede declararse de dos formas : Privada o Pblica. Para declarar una variable a nivel de formulario debe hacerse en la seccin de declaraciones, que est la ventana de cdigo Objeto = General, Proc. = Declaraciones. Si se declara Privada, esa variable se puede mover por todo el formulario, (es decir, por todos los procedimientos de todos los controles del formulario y por los Procedimientos que pudisemos insertar en ese formulario), pero no sale de dicho formulario. Si se declara como Pblica, esa variable puede moverse por todo el formulario, de la misma forma que lo hara declarada como Privada, y adems puede ser usada desde otro Formulario o Mdulo, citndola con el nombre del Formulario, seguido del nombre de la variable (Formulario.Variable)

En un Mdulo una variable puede declararse como Privada, con lo que no saldr de ese Mdulo, o Pblica, pudiendo en este caso usarse en todo el programa. Cuando se declara una variable como pblica en un Mdulo, basta referirse a ella por su nombre, sin citar el nombre del Mdulo donde se declar.

En VB es posible declarar varias veces las variables, es decir, pueden declararse a nivel de formulario, en su apartado de declaraciones, y esa

variable conservar su valor en todas las partes de ese formulario. Sin embargo, si se declara una variable con el mismo nombre a un nivel inferior, por ejemplo al principio de un procedimiento, esa variable ser una variable distinta a la anterior, aunque tenga el mismo nombre, a al declararla en un Procedimiento, solamente ser vlida en ese Procedimiento. Una vez que hayamos salido de ese procedimiento, la variable con ese nombre volver a ser la declarada en el Formulario. En realidad, lo que tenemos son dos variables distintas, pero con el mismo nombre, una declarada para todo el formulario excepto para el procedimiento donde se volvi a declarar, y otra para ese procedimiento concreto.

NOTA.- No es recomendable declarar una variable a dos niveles. Es mucho mejor utilizar otro nombre para esa variable dentro del procedimiento donde se le declarara por segunda vez. A esta nota cabe exceptuar cuando declaramos variables para una operacin tipo contador

For I = 1 To N

Esa variable I es prctico declararla con el mismo nombre en cada Procedimiento donde se use.

Tipos de declaracin de variables.

Sentencia DIM variable como

Es la forma mas comn de declarar una

Privada. Puede emplearse en un Procedimiento, Funcin, Formulario o Mdulo. La sintaxis es de la siguiente forma:

Dim nombrevariable As Integer

(o el tipo que sea)

Declarando una variable con la sentencia DIM, en un formulario, Funcin, procedimiento o mdulo, el entorno de la variable ser el explicado anteriormente para una variable declarada como Privada. Es decir, esa variable no sale del formulario, procedimiento mdulo donde se declar. Cada vez que entremos al formulario, procedimiento o mdulo, esa variable tomar el valor cero (si es numrica) o nulo (si es string).

Sentencia PRIVATE Privada. Puede

Es la forma de declarar una variable como

emplearse solamente en la seccin de declaraciones de un Formulario o Mdulo. La

sintaxis es de la siguiente forma:

Private

nombrevariable As Tipovariable

Declarando una variable mediante la sentencia PRIVATE en un Formulario o Mdulo, esa variable puede usarse en todo ese Formulario o Mdulo (En todos sus Procedimientos y Funciones), pero NO fuera del Formulario o Mdulo donde se declar.

La sentencia Private no puede usarse en un procedimiento o funcin.

Sentencia PUBLIC Pblica. Puede

Es la forma de declarar una variable como

emplearse solamente en la seccin de declaraciones de un Formulario o Mdulo. La sintaxis es de la siguiente forma:

Publicnombrevariable

As

Tipovariable

Declarando una variable de esta forma en la seccin de declaraciones de un Mdulo, esa variable puede usarse en cualquier parte del programa citndola simplemente por su nombre. Si se declara de esta forma en la seccin de declaraciones de un Formulario, esa variable puede usarse en toda el programa. Para nombrarla, si estamos en el Formulario donde se declar basta con citarla por su nombre. Si no estamos en ese Formulario, habr que citarla por el nombre del Formulario, seguido del nombre de la variable, separados por un punto :

NombreFormulario.Nombrevariable

En un Mdulo puede usarse tambin la sentencia Global en vez de Public :

Sentencia GLOBAL el programa. La

Declara una variable que es vlida en todo sintaxis es:

Global

nombrevariable As

tipovariable

La sentencia Global slo puede usarse en el apartado de declaraciones de un Mdulo.

Mediante la sentencia Global la variable puede usarse en todo el espacio del programa.

Sentencia STATIC

Como se dijo anteriormente, una variable declarada en un procedimiento pierde su valor al salir de l. Lo peor es que una vez que el programa vuelva a entrar en ese procedimiento, la variable estar puesta a cero. Afortunadamente, esto ltimo tiene solucin. Si declarsemos una variable en un procedimiento o funcin, como esttica, esa variable, aunque no la podremos utilizar fuera de ese procedimiento o funcin, cuando volvamos a l conservar el valor que tena cuando lo abandonamos. Esta declaracin como esttica se realiza mediante la instruccin Static

Static

nombrevariable

As

tipovariable

El nombre de una variable puede ser tan largo como queramos. hasta un mximo de 40 caracteres. En la versin VB para Espaa se pueden usar incluso la y vocales acentuadas. Es indiferente usar mayscula minsculas. No se sorprenda, si por ejemplo, la ha declarado con maysculas y luego la cita con minsculas al escribir el cdigo, que automticamente se cambie a maysculas. El nombre de una variable siempre debe comenzar por una letra.

No hay problema por utilizar variables largas. Al compilar el programa no se lleva el nombre, es decir, no le va a ocupar mas espacio. Utilice siempre nombres que le definan la variable con algn sentido. Es muy til a la hora de acordarse como se llaman, y sobre todo, a la hora de rehacer un programa que realiz hace seis meses.

Pese a que Visual Basic no obliga a declarar variables, es muy til hacerlo. De esta forma se tiene control sobre el programa. La experiencia se lo ir demostrando.

Resumimos la forma de declarar una variable :

En un Procedimiento (La variable no puede usarse fuera de esta Procedimiento)

Dim Variable As Tipovariable

En un Procedimiento, como permanente (La variable no puede usarse fuera de este procedimiento, y dentro de l conserva el valor aunque se salga y se vuelva a entrar)

Static Variable As Tipovariable

En un Formulario (En su seccin de declaraciones)

Como Privada (Solamente se puede usar en ese Formulario)

Dim Variable As Tipovariable

Private Variable As Tipovariable

Como Pblica

(Puede usarse en toda la aplicacin)

Public Variable As Tipovariable

En un Mdulo

Como Privada (Solamente puede usarse en ese Mdulo)

Dim Variable As Tipovariable

Private Variable As Tipovariable

Como Pblica

(Puede usarse en toda la aplicacin)

Public Variable As Tipovariable

Global Variable As Tipovariable

Error tpico de un programador en Visual Basic

Creo que esta costumbre viene del lenguaje C. Pero no vale en VB. Se trata de declarar varias variables juntas en una misma lnea :

Dim Variable1, Variable2, Variable3, Variable4 As String

Esta declaracin est MAL hecha. Visual Basic interpretar que Variable1, Variable2 y Variable3 son del tipo Variant, y solamente Variable4 la supone como tipo String

La forma correcta de hacerlo, si queremos declarar esas variables un una sola lnea, es la siguiente :

Dim Variable1 As String, Variable2 As String, Variable3 As String, Variable4 As String.

Lenguaje Basic del Visual Basic.

No ha sido un juego de palabras. VB emplea unas instrucciones casi iguales a las que emplea Quick Basic. Sin embargo ha aadido otras nuevas instrucciones, inherentes con la programacin visual. Vamos a estudiar aqu las instrucciones y definiciones mas sencillas, comunes a QB y VB.

Sentencias condicionales.

Llamamos sentencias condicionales a aquellas que se realizan si se cumple una determinada condicin. Son las sentencias por las que empieza cualquier texto de Basic, y este no va ser menos.

La sentencia condicional mas usada es:

Si se cumple una condicin Entonces

Realiza estas instrucciones

Si no se cumple

Realiza estas otras instrucciones

Fin de la sentencia.

As de fcil es programar en Basic. Lo que ocurre es que esta herramienta habla ingls, y lo descrito anteriormente toma la forma:

If condicin Then Instrucciones Else Otras instrucciones End If

En este ejemplo, la condicin era que, o se cumple una condicin y ejecuta unas determinadas instrucciones, o no se cumple, y ejecuta otras condiciones distintas. Puede ocurrir que, caso de no cumplirse la condicione primera, se abra un abanico de dos o tres posibilidades. La

sentencia condicional tendra entonces la forma:

If condicin 1 Then Instrucciones ElseIf Condicin 2 Otras instrucciones ElseIf Condicin 3 Otro juego de instrucciones Else Instrucciones que debe realizar caso de no cumplir las condiciones 1, 2 y 3. End If

Como decamos anteriormente, este es el tipo de sentencia condicional mas usada. Existe otra:

Select Case

Su nombre casi nos define lo que es: Selecciona, dependiendo del caso, un determinado juego de instrucciones:

Select Case variable los valores (p.e.)

' variable es una variable que puede tomar de 1 a 4

Case 1 Instrucciones a ejecutar en caso de que variable = 1 Case 2 Instrucciones a ejecutar en caso de que variable = 2 Case 3 Instrucciones a ejecutar en caso de que variable = 3 Case 4 Instrucciones a ejecutar en caso de que variable = 4 End Select

Este procedimiento resulta mucho mas sencillo y rpido que las sentencias If Then Else vistas anteriormente, cuando el margen de eleccin es mayor que 2.

Cuando lo que queremos es elegir un valor, no ejecutar instrucciones como hacamos anteriormente, disponemos de otras dos funciones: Choose y Switch.

Switch toma una serie de parmetros, todos por parejas. El primer trmino de cada pareja es la expresin a evaluar. El segundo es el valor que tiene que devolver. En realidad Switch es una funcin (las funciones las veremos muy pronto)

A = Switch (B=1, 5, B=2, 7, B=3, 11)

Esta instruccin obtiene un valor para A que depender del valor que tome B entre los valores posibles (1, 2 3)

La sentencia Choose es casi igual, cambia solamente la forma. La misma intruccin anterior puede realizarse con Choose de la siguiente forma:

A = Choose ( B, 5, 7, 11 )

En estas sentencias, Switch y Choose, si el valor de B no coincide con ninguno de los valores que se le haban establecido (1, 2 3 en nuestro caso), la sentencia devuelve el valor Nulo ( Null ). Esto puede producir algn error si no se contempla esa posibilidad.

Con estas sentencias condicionales es posible realizar bifurcaciones del programa, cambiar las propiedades de un objeto, obtener resultados de operaciones, ....

Sentencias de bucle.

Es muy comn utilizar bucles a lo largo de un programa. Un bucle es una sucesin repetitiva de instrucciones, que se estarn realizando mientras se cumpla una condicin o mientras no se cumpla otra condicin. Es tan sencillo como esto:

Mientras condicin

Instrucciones

Fin del bucle

Existen dos formas de bucle: Una, que realiza un nmero determinado de recorridos por el bucle. Es el denominado bucle por contador. Otra, realiza el bucle hasta que se cumpla (o deje de cumplirse) una condicin. Es el llamado bucle por condicin.

Bucle por contador

Realiza el bucle tantas veces como le indiquemos. Por ejemplo, en este bucle nos va a presentar las 26 letras maysculas del alfabeto ingls

For N=65 To 90

Label1.caption = Chr ( N )

Next N

Este "programa" nos presentar en una caja (Label) los caracteres cuyo nmero ASCII vaya desde el 65 (A) al 90 (Z) Comenzar presentando el correspondiente al nmero 65, e ir presentando sucesivamente el 66,

el 67, etc., hasta llegar al 90, donde se parar.

Bucles por condicin

Ejecuta las instrucciones del bucle mientras se cumple una condicin

X=0 Do While X < 1000 X=X+1 Loop

El programa toma una variable ( X ) que previamente tuvimos la curiosidad de ponerla a cero, e incrementa su valor una unidad. Analiza si el valor de X es menor que 1000, y si es cierto, vuelve a realizar el bucle. As hasta que X ya no sea menor que 1000. Al dejar de cumplirse que X sea menor que 1000, sale del bucle. Acabamos de realizar un temporizador, y tambin de exponer las sentencias condicionales y los bucles, inicio de cualquier curso de Basic. Como final de leccin, se propone un problema. Con el primer bucle, donde visualizbamos los caracteres A a la Z, posiblemente no nos diese tiempo de ver cada una

de las letras que iban apareciendo en la pantalla, en la etiqueta Label1, dado que cambiara con mucha velocidad, y solamente veramos la Z, que es donde se detuvo el programa. Podemos poner un temporizador cada vez que presente una letra, y as nos dar tiempo a verla. Con los dos bucles vistos anteriormente ya podemos hacerlo.

Si lo que queremos es que el programa se ejecute mientras no se cumpla una determinada condicin, la sentencia ser:

X=0 Do Until X > 1000 X=X+1 Loop

Observe que la diferencia entre una y otra es la condicin, While para indicar Mientras se cumpla que ... se cumpla que .... y Until para indicar Mientras no

Para terminar bien el programa anterior utilizaremos la condicin de While (Mientras se cumpla la condicin)

For N=65 To 90 Label1.caption = Chr ( N ) Label1.RefreshN X=0 Do While X < 1000 X=X+1 Loop Next N ' Refresca la etiqueta

Este es nuestro primer programa en BASIC. En VISUAL BASIC es idntico, pero nos falta la interface grfica. Para realizarla basta con abrir el VB y sobre el formulario que aparece al abrirlo, introducir una etiqueta, (Label) que llevar el nombre por defecto de Label1. Solo nos queda pensar donde introducimos el cdigo anterior. Podemos introducir un botn de comando (Command Button) que saldr con el nombre por defecto de Command1. Haga doble click sobre el botn. Aparecer el procedimiento Click. Este procedimiento es el que se realiza cuando hacemos click sobre ese botn. Escriba en ese procedimiento este cdigo.

Private Sub Command1_Click()

' Esta lnea sale

automticamente For N=65 To 90 Label1.caption = Chr ( N ) Label1.RefreshN X=0 Do While X < 1000 X=X+1 Loop Next N End Sub
Funciones de cadenas

' Refresca la etiqueta

' Bucle de temporizacin

' Termina el bucle de temporizacin ' Esta lnea sale automticamente

Se denomina CADENA a una sucesin de caracteres. Una cadena puede tener uno o varios caracteres alfanumricos. Una cadena es tambin una sucesin de nmeros.

Ejemplo de cadenas:

Curso de Visual Basic abcdefghijklmnopqrstuvwxyz1234567890 123456789

Hagamos una distincin entre una cadena que contenga nmeros y un nmero. Un nmero tiene un valor, pero tambin tiene una presentacin escrita. El valor es algo que estar en el ordenador como una sucesin de bits. Dependiendo de como lo hayamos declarado, tendr mas o menos bits. Pero esa informacin no es un nmero legible por el usuario. Lo que s es legible por el usuario es la representacin en numeracin decimal (u octal, o hexadecimal, o incluso en binario) de ese nmero. Esa representacin del nmero en un determinado sistema de numeracin es una cadena.

As, el nmero nueve, que en la memoria del ordenador ser una sucesin de bits, el ordenador puede presentrnoslo como:

9 9 11 1001

En numeracin decimal En numeracin hexadecimal En numeracin octal En numeracin binaria

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

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

Cuando introducimos un valor numrico por teclado o pantalla, el ordenador para hacer operaciones con l, debe transformarlo a un nmero.

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

Str

(nmero)

Convierte un nmero a una cadena en decimal.

numeracin

Val

(cadena numrica)

Obtiene el valor (el nmero) cadena.

correspondiente a esa

Ejemplos

Variablenumerica = Val (TextBox1.Text)

Este ejemplo convierte la cadena de caracteres (numricos) que hubiese en la caja de texto TextBox1 en un nmero, y asocia este nmero a la variable Variablenumerica. Si el contenido de la caja de textos no fuesen caracteres numrico (abcd, por ejemplo), Variablenumerica tomara el valor 0.

Label1.Caption = Str (Variablenumerica)

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

Nota para recordar: Siempre habr que convertir un nmero a una cadena cuando queramos presentarlo en la pantalla. Siempre habr que convertir a nmero la cadena de caracteres numricos que hayamos introducido por teclado o por pantalla, cuando queramos operar con ese nmero. Un Label, cuando tiene que presentar un

nico nmero, no le pedir que se lo convierta a cadena, pues VB hace automticamente esa conversin. Sin embargo, cuando tiene que presentar un nmero, y adems un texto en el mismo Label, VB no realizar automticamente ese cambio, por lo que le dar un error. Le recomiendo que convierta los nmeros a variables de cadena siempre que los quiera presentar en un Label o TextBox.

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

Esta funcin 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 tambin 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) booleana es true

Label1.Caption = Verdadero

si

Label1.Caption = Falso False

si booleana es

Label2 = CStr(Check1.Value) activado

Label2.Caption = 1

si Check1 est

Label2.Caption = 0 desactivado

si Check1 est

Label3 = CStr(Option1.Value) Check1 est activado

Label3.Caption = Verdadero si

Label3.Caption = Falso desactivado

si Check1 est

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) de V

----> Resultado = Curso

Right (cadena, n)

Extrae lo n ltimos caracteres de la cadena

Resultado = Right (cadena, 10) Basic

----> Resultado = sual

Mid (cadena, m, n) Extrae n caracteres de la cadena, siendo el primer carcter extrado el que ocupa el lugar m.

(Vea Instruccin Mid mas abajo)

Resultado = Mid (cadena, 3, 10)

----> Resultado = rso de Vis

LCase (cadena)

Devuelve otra cadena igual, pero con todos los

caracteres en minsculas. (LCase = Lower Case)

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

UCase (cadena)

Devuelve otra cadena igual, pero con todos los

caracteres en maysculas. (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) para almacenar la

Devuelve el nmero de Bytes empleados

cadena. Sorprndase, es el doble que Len (Cadena)

String (n, carcter) el indicado

Devuelve una cadena de n caracteres como

Resultado = String (8, "a")

----> Resultado = aaaaaaaa

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

----> Resultado =

Resultado = String (8, 65)

----> Resultado = AAAAAAAA

Space espacios.

(n)

Devuelve una cadena formada por n

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

LTrim una cadena por su

Elimina los posibles espacios que tenga izquierda.

Rtrim cadena por su

Elimina los posibles espacios que tenga una derecha.

Trim por su los espacios

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

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 ningn ejemplo de estas funciones, pues sera difcil verlo impreso.

InStr (cadena, cadena1) primera letra de cadena1

Busca la cadena1 dentro de cadena y

devuelve el nmero de orden dentro de cadena donde se encuentra la

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

StrConv instrucciones

Convierte una cadena de caracteres en otra, segn las

que le sigan. Puede sustituir a UCase o LCase si la instruccin es UpperCase o LowerCase respectivamente, o poner la primera letra de todas las palabras de la cadena en maysculas, si la instruccin es ProperCase.

Resultado = StrConv (cadena, UpperCase) CURSO DE BASIC

----> Resultado = VISUAL

Resultado = StrConv (cadena, LowerCase) curso de visual

----> Resultado = basic

Resultado = StrConv (cadena, ProperCase) Curso De Visual Instruccin Mid

----> Resultado = Basic

Mid puede usarse tambin para cambiar el contenido de una cadena. Observe la sutileza entre Mid como Funcin de cadena y Mid como Instruccin.

La Instruccin Mid reemplaza un nmero 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 Curso sobre Visual Basic

---- > Resultado =

FUNCIONES CON NMEROS _________________________

Visual Basic puede operar con nmeros tal como lo hara cualquier persona. Conoce las 4 reglas, y puede utilizar parntesis de la misma forma que los escribimos sobre el papel.

Los operadores que utiliza para las operaciones bsicas son:

+ * / \

Suma Resta Multiplicacin Divisin Divisin sin decimales

Mod Resto de una divisin ^ Eleva a un exponente

Ejemplos

Resultado = 12 + 15

----> Resultado = 27

Resultado = 15 - 12 Resultado = 15 * 12 Resultado = 15 / 12 Resultado = 15 \ 12 Resultado = 15 Mod 12 Resultado = 12 ^ 2

----> Resultado = 3 ----> Resultado = 180 ----> Resultado = 1.25 ----> Resultado = 1 ----> resultado = 3 ----> Resultado = 144

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

Estos operadores se denominan Operadores aritmticos.

Existen otras operaciones que se pueden realizar con nmeros: 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 decisin.

El operador = puede usarse tambin para comparar cadenas o fechas.

Operadores Lgicos

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

Operador

Funcin

Devuelve True si Devuelve False si

And

Funcin AND

A=True y B=True Cualquier otro caso

Or

Funcin OR

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

Xor B=True

Funcin XOR

A=True y B=False

A=True y

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=True

A=False y B=False

Imp

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

Not

Negacin

A=False

A=True

Like Igualdad

A=True

A=False

Otras Funciones con nmeros

CInt

Parte entera

Devuelve la parte entera de un

nmero con decimales

Abs nmero

Valor Absoluto

Devuelve el valor absoluto de un

Sgn

Signo

Devuelve el signo de un nmero

Sqr nmero

Raz cuadrada

Devuelve la raz cuadrada de un

Exp

Exponenciacin Devuelve el nmero elevado al

exponente indicado

Log nmero

Logaritmo Devuelve el logaritmo natural de ese

Trigonomtricas

Sin (Expresado

Seno

Devuelve el valor del seno de un ngulo

en radianes)

Cos radianes)

Coseno

Devuelve el coseno de un ngulo (En

Tan

Tangente

Devuelve la tangente de un ngulo

Atn nmero

Arco Tang. Devuelve un arco cuya tangente sea el

(Angulo en radianes)

Una funcin curiosa

Timer segundos) que ha 12 de la noche.

Tiempo acumulado

Devuelve el tiempo (en pasado desde las

Generacin de nmeros aleatorios

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

NOTA MUY IMPORTANTE.- Los nmeros aleatorios generados de esta forma son siempre iguales, eso s, dependiendo del nmero que se le introduzca como parmetro. Esta generacin de nmeros no produce nmeros aleatorios pues como se dijo, dependen del numero que se meta como parmetro, y si este se repite, se repite la sucesin de nmeros que nos crea el generador aleatorio.

La forma de obtener nmeros realmente aleatorios es introducir como parmetro un nmero que sea variable con el tiempo. Ese nmero no puede ser otro que el nmero timer visto antes. Y siempre con la precaucin de que medie mas de un segundo entre dos instrucciones Randomize. La funcin toma entonces la forma:

Randomize Timer

La funcin Randomize devuelve una variable Rnd con un nmero comprendido entre 0 y 1 (Nunca ser 0 ni 1) Leyendo el valor de la variable sucesivas veces, se puede obtener una sucesin de nmeros aleatorios. No es necesario ejecutar la instruccin Randomize Timer cada vez que se quiera obtener un dato de la variable Rnd.

Un ejemplo. Generador de nmeros para la Lotera Primitiva

Supongamos que tenemos un formulario con una etiqueta de nombre Label1, un botn de comando de nombre Command1. Cuando hagamos click sobre el botn de comando deber generar un nmero comprendido entre el 1 y el 49. En el procedimiento click de Command1 pondremos el siguiente cdigo:

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 pequeo programa, con la instruccin Randomize Timer y sin ella.

Funciones con fechas.

Las fechas son cadenas especiales. Visual Basic sabe obtener y tratar la

informacin relativa a la fecha y la hora. Dispone para ello de una declaracin de variable: Date. Una variable declarada como date puede contener una fecha, una fecha y una hora o una hora solamente.

Date del ordenador.

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

Time

Devuelve la hora actual.

Now

Devuelve la fecha y hora actual.

WeekDay Devuelve el da de la semana (En nmero, 1=Domingo, 2=Lunes,...)

Day

Obtiene el da, a partir de una fecha

Month

Obtiene el mes a partir de una fecha.

Year

Obtiene el ao 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

Aade un intervalo de tiempo a una fecha

DateDiff

Obtiene el intervalo de tiempo entre dos fechas

DatePart etc.)

Devuelve una parte de una fecha (semana, trimestre,

DateSerial Compone una fecha a partir de parmetros relativos

TimeSerial Compone una hora a partir de parmetros relativos.

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

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

Da = Day (Now) Da ser un nmero

El da de la semana lo obtendramos

Diasemana = WeekDay (Now) nmero

Diasemana ser un

DateValue, una instruccin que le sacar mucho provecho

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

Funcin FORMAT

Esta funcin permite presentar cadenas de numricas o fechas de una determinada forma. Permite establecer el Formato de esa cadena.

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

Format(expresin[, formato[, primerdadesemana[, primerasemanadelao]]])

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

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

la variable FechadeHoy tendr el valor 1998-05-21, que se refiere al da

21 de mayo de 1998, segn el formato recomendado por la norma ISO8601 para la presentacin de fechas. Si hubisemos puesto la expresin FechadeHoy = Format (Now, dd/mm/yy) , la variable FechadeHoy contendra el valor 21/05/98 referido al da citado.

Las posibilidades de Format llegan tambin al campo de las cadenas numricas. Por ejemplo la cifra 123456 se transformar en las siguientes expresiones, segn como empleemos la funcin Format

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

Variable = 123.456

Variable =

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

Variable = Format (expresin[, formato[, firstdayofweek[, firstweekofyear]]])

Donde expresin es una cadena o fecha vlida

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

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

Constante Valor

Descripcin

vbUseSystem VbSunday 1 vbMonday 2 vbTuesday 3 vbWednesday vbThursday vbFriday 6

El especificado en el sistema operativo.

Domingo (valor por defecto) Lunes Martes 4 5 Mircoles Jueves Viernes Sbado

vbSaturday 7

firstweekofyear

Especifica cual es la primera semana del ao. Puede

tomar uno de los siguientes valores o constantes :

Constante

Valor Descripcin

vbUseSystem vbFirstJan1 Enero(Valor por defecto vbFirstFourDays 2 4 das de ese 1

Usa el valor del sistema operativo

La primera semana es la que contiene al da 1 de

La primera semana es la que contiene al menos,

ao (Rec. ISO - 8601) vbFirstFullWeek 3 en ese ao La primera semana es la que tiene todos sus das

No se complique la vida con el tema del primer da de la semana ni la primera semana del ao. No lo usar con frecuencia. Centrmonos mas en el parmetro Formato. Puede tomar muchos valores. Veamos los principales. Primero para nmeros

Observe que usamos la expresin Variable =Format (1234567,Formato)

para todos los ejemplos de nmeros.

Para poner los nmeros separados por millares :

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

Variable =

(Cada carcter # indica que ah va un nmero. 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 nmero tal como lo tecle Currency Fixed Standard (1.234.567,00) Percent Multiplica el nmero por cien y lo presenta cono En formato de la moneda de su sistema operativo Sin separador de millar y dos decimales (1234567,00) Con separador de millares y dos decimales

porcentaje(123456700,00%) Scientific . Para fechas (Observe que usamos el ejemplo Format(Now, Formato) Usa notacin cientfica (1,23E+06)

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 Short Time 22:20 hh :mm :ss 22 :21 :29 hh :mm 22 :21 10:20 PM

Format dispone de mas opciones. Sera muy largo explicarlas aqu. Para mas informacin, en la WEB de Microsoft puede encontrar mas formatos posibles.

Potrebbero piacerti anche