sábado, 23 de mayo de 2015

visual basic

Visual Basic es un lenguaje de programación dirigido por eventos, desarrollado por Alan Cooper para Microsoft. Este lenguaje de programación es un dialecto de BASIC, con importantes agregados. Su primera versión fue presentada en 1991, con la intención de simplificar la programación utilizando un ambiente de desarrollo que facilitó en cierta medida la programaciónmisma.
La última versión fue la 6, liberada en 1998, para la que Microsoft extendió el soporte hasta marzo de 2008.
En 2001 Microsoft propuso abandonar el desarrollo basado en la API Win32 y pasar a un framework o marco común de librerías, independiente de la versión del sistema operativo, .NET Framework, a través de Visual Basic .NET (y otros lenguajes como C Sharp (C#) de fácil transición de código entre ellos); fue el sucesor de Visual Basic 6.
Aunque Visual Basic es de propósito general, también provee facilidades para el desarrollo de aplicaciones de bases de datos usando Data Access Objects, Remote Data Objects o ActiveX Data Objects.
Visual Basic contiene un entorno de desarrollo integrado o IDE que integra editor de textos para edición del código fuente, un epurador, un compilador (y enlazador) y un editor de interfaces gráficas o GUI.

Visual Basic 6.0 es uno de los lenguajes de programación que más entusiasmo despiertan entre los programadores de PCs, tanto expertos como novatos. En el caso de los programadores expertos por la facilidad con la que desarrollan aplicaciones complejas en poquísimo tiempo (comparado con lo que cuesta programar en Visual C++, por ejemplo). En el caso de los programadores novatos por el hecho de ver de lo que son capaces a los pocos minutos de empezar su aprendizaje. El precio que hay que pagar por utilizar Visual Basic 6.0 es una menor velocidad o eficiencia en las aplicaciones. Visual Basic 6.0 es un lenguaje de programación visual, también llamado lenguaje de 4ª generación. Esto quiere decir que un gran número de tareas se realizan sin escribir código, simplemente con operaciones gráficas realizadas con el ratón sobre la pantalla. Visual Basic 6.0 es también un programa basado en objetos, aunque no orientado a objetos como C++ o Java. La diferencia está en que Visual Basic 6.0 utiliza objetos con propiedades y métodos, pero carece de los mecanismos de herencia y polimorfismo propios de los verdaderos lenguajes orientados a objetos como Java y C++. En este primer capítulo se presentarán las características generales de Visual Basic 6.0, junto con algunos ejemplos sencillos que den idea de la potencia del lenguaje y del modo en que se utiliza. 1.1 PROGRAMAS SECUENCIALES, INTERACTIVOS Y ORIENTADOS A EVENTOS Existen distintos tipos de programas. En los primeros tiempos de los ordenadores los programas eran de tipo secuencial (también llamados tipo batch) Un programa secuencial es un programa que se arranca, lee los datos que necesita, realiza los cálculos e imprime o guarda en el disco los resultados. De ordinario, mientras un programa secuencial está ejecutándose no necesita ninguna intervención del usuario. A este tipo de programas se les llama también programas basados u orientados a procedimientos o a algoritmos (procedural languages). Este tipo de programas siguen utilizándose ampliamente en la actualidad, pero la difusión de los PCs ha puesto de actualidad otros tipos de programación. Los programas interactivos exigen la intervención del usuario en tiempo de ejecución, bien para suministrar datos, bien para indicar al programa lo que debe hacer por medio de menús. Los programas interactivos limitan y orientan la acción del usuario. Un ejemplo de programa interactivo podría ser Matlab. Por su parte los programas orientados a eventos son los programas típicos de Windows, tales como Netscape, Word, Excel y PowerPoint. Cuando uno de estos programas ha arrancado, lo único que hace es quedarse a la espera de las acciones del usuario, que en este caso son llamadas eventos. El usuario dice si quiere abrir y modificar un fichero existente, o bien comenzar a crear un fichero desde el principio. Estos programas pasan la mayor parte de su tiempo esperando las acciones del usuario (eventos) y respondiendo a ellas. Las acciones que el usuario puede realizar en un momento determinado son variadísimas, y exigen un tipo especial de programación: la programación orientada a eventos. Este tipo de programación es sensiblemente más complicada que la secuencial y la interactiva, pero Visual Basic 6.0 la hace especialmente sencilla y agradable. ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 2 1.2 PROGRAMAS PARA EL ENTORNO WINDOWS Visual Basic 6.0 está orientado a la realización de programas para Windows, pudiendo incorporar todos los elementos de este entorno informático: ventanas, botones, cajas de diálogo y de texto, botones de opción y de selección, barras de desplazamiento, gráficos, menús, etc. Prácticamente todos los elementos de interacción con el usuario de los que dispone Windows 95/98/NT pueden ser programados en Visual Basic 6.0 de un modo muy sencillo. En ocasiones bastan unas pocas operaciones con el ratón y la introducción a través del teclado de algunas sentencias para disponer de aplicaciones con todas las características de Windows 95/98/NT. En los siguientes apartados se introducirán algunos conceptos de este tipo de programación. 1.2.1 Modo de Diseño y Modo de Ejecución La aplicación Visual Basic de Microsoft puede trabajar de dos modos distintos: en modo de diseño y en modo de ejecución. En modo de diseño el usuario construye interactivamente la aplicación, colocando controles en el formulario, definiendo sus propiedades, y desarrollando funciones para gestionar los eventos. La aplicación se prueba en modo de ejecución. En ese caso el usuario actúa sobre el programa (introduce eventos) y prueba cómo responde el programa. Hay algunas propiedades de los controles que deben establecerse en modo de diseño, pero muchas otras pueden cambiarse en tiempo de ejecución desde el programa escrito en Visual Basic 6.0, en la forma en que más adelante se verá. También hay propiedades que sólo pueden establecerse en modo de ejecución y que no son visibles en modo de diseño. Todos estos conceptos –controles, propiedades, eventos, etc.- se explican en los apartados siguientes. 1.2.2 Formularios y Controles Cada uno de los elementos gráficos que pueden formar parte de una aplicación típica de Windows 95/98/NT es un tipo de control: los botones, las cajas de diálogo y de texto, las cajas de selección desplegables, los botones de opción y de selección, las barras de desplazamiento horizontales y verticales, los gráficos, los menús, y muchos otros tipos de elementos son controles para Visual Basic 6.0. Cada control debe tener un nombre a través del cual se puede hacer referencia a él en el programa. Visual Basic 6.0 proporciona nombres por defecto que el usuario puede modificar. En el Apartado 1.2.4 se exponen algunas reglas para dar nombres a los distintos controles. En la terminología de Visual Basic 6.0 se llama formulario (form) a una ventana. Un formulario puede ser considerado como una especie de contenedor para los controles. Una aplicación puede tener varios formularios, pero un único formulario puede ser suficiente para las aplicaciones más sencillas. Los formularios deben también tener un nombre, que puede crearse siguiendo las mismas reglas que para los controles.












el help de visual basic

El Help de Visual Basic 6.0 es de los mejores que existen. Además de que se puede buscar cualquier tipo de información con la función Index, basta seleccionar una propiedad cualquiera en la ventana de propiedades o un control cualquiera en el formulario (o el propio formulario), para que pulsando la tecla aparezca una ventana de ayuda muy completa. De cada control de muestran las propiedades, métodos y eventos que soporta, así como ejemplos de aplicación. También se muestra información similar o relacionada. Existe además un breve pero interesante curso introductorio sobre Visual Basic 6.0 que se activa con la opción Help/Contents, seleccionando luego MSDN Contents/Visual Basic Documentation/Visual Basic Start Page/Getting Started. 1.5 EJEMPLOS El entorno de programación de Visual Basic 6.0 ofrece muchas posibilidades de adaptación a los gustos, deseos y preferencias del usuario. 

Los usuarios expertos tienen siempre una forma propia de hacer las cosas, pero para los usuarios noveles conviene ofrecer unas ciertas orientaciones al respecto. Por eso, antes de realizar los ejemplos que siguen se recomienda modificar la configuración de Visual Basic 6.0 de la siguiente forma: 1. En el menú Tools elegir el comando Options; se abre un cuadro de diálogo con 6 solapas. 2. En la solapa Environment elegir “Promp to Save Changes” en “When a Program Starts” para que pregunte antes de cada ejecución si se desean guardar los cambios realizados. 



En la solada Editor elegir también “Require Variable Declaration” en “Code Settings” para evitar errores al teclear los nombres de las variables. 3. En la solapa Editor, en Code Settings, dar a “Tab Width” un valor de 4 y elegir la opción “Auto Indent” (para que ayude a mantener el código legible y ordenado). En Windows Settings elegir “Default to Full Module View” (para ver todo el código de un formulario en una misma ventana) y “Procedure Separator” (para que separe cada función de las demás mediante una línea horizontal). 1.5.1 Ejemplo 1.1: Sencillo programa de colores y posiciones En la Figura 1.2 se muestra el formulario y los controles de un ejemplo muy sencillo que permite mover una caja de texto por la pantalla, permitiendo a su vez representarla con cuatro colores diferentes. En la Tabla 1.2 se describen los controles utilizados, así como algunas de sus propiedades más importantes (sobre todo las que se separan de los valores por defecto). Los ficheros de este proyecto se llamarán Colores0.vbp y Colores0.frm.

controles mas usuales

se muestran algunos de los controles más habituales en Visual Basic 6.0. Estos controles se explican a continuación con más detalle. 4.3.1 Botón de comando (Command Button) La propiedades más importantes del botón de comando son su Caption, que es lo que aparece escrito en él, las referentes a su posición (Left y Top) y apariencia externa (Height, Width y tipo de letra) y la propiedad Enabled, que determina si en un momento dado puede ser pulsado o no. No hay que confundir la propiedad Caption con la propiedad Name. La primera define a un texto que aparecerá escrito en el control, mientras que las segunda define el nombre interno con el que se puede hacer referencia al citado objeto. Si en la propiedad Caption se pone el carácter (&) antes de una de sus letras, dicha letra aparece subrayyada en el botón (como la “x” en el botón Exit de la figura anexa). Esto quiere decir que, como es habitual en Windows, dicho botón puede activarse con el teclado por medio de la combinación Alt+letra subrayada. Esta característica es común a muchos de los controles que tienen propiedad Caption. El evento que siempre suelen tener programado los botones de comandos es el evento Click.

 Capítulo 4: Eventos, Propiedades y Controles página 55 4.3.2 Botones de opción (Option Button) Además de las mencionadas para el caso anterior estos botones tienen la propiedad Value, que en un determinado momento sólo puede ser True en uno de los botones del grupo ya que se trata de opciones que se excluyen mutuamente. Para agrupar botones se coloca primero un marco o frame en el formulario y, estando seleccionado, se colocan después cuantos botones de opción se desee. En un mismo formulario se pueden colocar cuantos grupos de botones de opción se quiera, cada uno de ellos agrupado dentro de su propio marco. Es muy importante colocar primero el frame y después los botones de opción. Con esto se consigue que los botones de opción estén agrupados, de modo que sólo uno de ellos pueda estar activado. Si no se coloca ningún frame todos los botones de opción de un mismo formulario forman un único grupo. Si los botones ya existen y se quieren introducir un un frame se seleccionan, se hace Cut y luego Paste dentro del frame seleccionado. Sólo un grupo de botones de opción puede recibir el focus, no cada botón por separado. Cuando el grupo tiene el focus, con las flechas del teclado (↑ y ↓) se puede activar una u otra opción sin necesidad de usar el ratón. También se puede utilizar Alt+carácter introduciendo antes de dicho carácter un (&) en el Caption del botón de opción. 4.3.3 Botones de selección (Check Box) La única diferencia entre estos botones y los anteriores es que en los botones de selección puede haber más de uno con la propiedad Value a True.




 Estos botones no forman grupo aunque estén dentro de un frame, y reciben el focus individualmente. Se puede también utilizar el carácter (&) en el Caption para activarlos con el teclado. El usuario debe decidir qué tipo de botones se ajustan mejor a sus necesidades: en el caso de la edad, está claro que no se puede ser de dos edades diferentes; sí es posible sin embargo conocer varios lenguajes de programación. 4.3.4 Barras de desplazamiento (Scroll Bars) En este tipo de control las propiedades más importantes son Max y Min, que determinan el rango en el que está incluido su valor, LargeChange y SmallChange que determinan lo que se modifica su valor al clicar en la barra o en el botón con la flecha respectivamente y Value que determina el valor actual de la barra de desplazamiento. Las barras de desplazamiento no tienen propiedad Caption. El evento que se programa habitualmente es Change, que se activa cuando la barra de desplazamiento modifica su valor. Todo lo comentado en este apartado es común para las barras de desplazamiento verticales y horizontales. Además de las Scroll Bars horizontal y vertical, Visual Basic 6.0 dispone también del control Slider, utilizado en los paneles de control de Windows, que tiene una función similar.

historia

Todas las versiones de Visual Basic para Windows son muy conocidas, aunque la Microsoft Visual Basic 1.0 desarrollada para el sistema operativo MS-DOS (ediciones Profesional y Estándar), que data de 1992, fue menos difundida. Esta proveía un entorno que, aunque en modo texto, incluía un diseñador de formularios en el que se podían arrastrar y soltar distintos controles.
La última versión que sólo generaba aplicaciones de 16 bits fue la 3.0, y no incluía una biblioteca detallada de componentes para toda clase de usos. Durante la transición de los sistemas Windows 3.11 a Windows 95, en 1995, hizo su aparición la versión 4.0 de Visual Basic; ésta podía generar programas tanto de 16 como de 32 bits, a partir del mismo código fuente, aunque a costa de un gran aumento en el tamaño de los archivos necesarios en tiempo de ejecución ("runtime"). Además, se sustituyeron los controles denominados VBX por los nuevos OCX. Con la siguiente versión, la 5.0, se estuvo a punto de implementar por primera vez la posibilidad de compilar a código nativo, obteniendo una mejora de rendimiento considerable. Tanto esa como la sucesora 6.0 soportaban ciertas características propias de los lenguajes orientados a objetos, pero carecían de algunas importantes, tales como herencia y sobrecarga; pero, de hecho, no fue pensado como lenguaje orientado a objetos. La versión 6.0, que puede generar código ejecutable directo en 32 bits, continúa aún utilizándose masivamente, y es compatible con las últimas versiones de los sistemas Windows, como Windows 7 y Windows 8.
Visual Basic evolucionó para integrar la plataforma .NET; allí perdió su propia identidad como lenguaje único adquirible, pasando a integrar un paquete de productos, llamado precisamente Microsoft .NET; dentro de ese paquete o framework se encuentra el nuevo y llamado Visual Basic .NET, que trabaja sobre el entorno Microsoft Visual Studio. Esta nueva versión del lenguaje posee profundas diferencias en la forma de programar respecto de Visual Basic 6, pero gran semejanza en su sintaxis básica.
Cabe mencionar que, aunque fue menos conocido, se desarrolló también una versión gratuita de Visual Basic 5.0, orientada al desarrollo de controles y componentes; su nombre específico era Microsoft Visual Basic 5.0 Control Creation Edition (Visual Basic 5 CCE). También hubo versiones orientadas al desarrollo de aplicaciones para dispositivos móviles basados en Windows CE y Pocket PC, conocidas como Embedded (Visual Basic).

Versiones[editar]

  • Visual Basic 1.0 para Windows se liberó en mayo de 1991.
  • Visual Basic 1.0 para MS-DOS fue liberada en septiembre de 1992. Poco popular, este lenguaje no era compatible con Visual Basic para Windows, ya que constituía en realidad la siguiente versión de los compiladores BASIC vigentes para DOS, denominados QuickBASIC y BASIC PDS (Profesional Development System). Usaba una interfaz de texto, con caracteres ASCII extendidos que daban la apariencia de una interfaz gráfica.
  • Visual Basic 2.0 fue liberado en noviembre de 1992. Venía en versiones Standard y Professional. El entorno de programación era más fácil de usar que el anterior, y su velocidad de proceso fue mejorada. En particular, los formularios se convirtieron en objetos instanciables, sentando así los conceptos fundamentales para módulos de clase, que más tarde se ofrecerían en la versión 4.
  • Visual Basic 3.0 salió al mercado en verano de 1993, en versiones Standard y Profesional. Incluía la versión 1.1 de Microsoft Jet Database Engine, que permitía acceso a bases de datos Access.
  • Visual Basic 4.0, surgida en agosto de 1995, fue la primera versión que generaba aplicaciones tanto de 16 como de 32 bits para Windows. Había incompatibilidades entre las distintas realeases de esta versión que causaban fallas de instalación y problemas de operación. Mientras las anteriores utilizaban controles VBX, con la 4.0 se comenzaron a utilizar controles OLE en archivos OCX, que más tarde se llamarían controles ActiveX.
  • En febrero de 1997, Microsoft lanzó Visual Basic 5.0, versión que generaba programas de 32 bits exclusivamente. Los programadores que aún preferían desarrollar aplicaciones en 16 bits debían necesariamente utilizar VB 4.0, siendo transportables en código fuente a VB 5.0 y viceversa. En la versión 5 se tenía la posibilidad de crear controles personalizados; también permitía compilar a código ejecutable nativo de Windows, logrando con ello incrementar la velocidad de ejecución de los programas generados, más notablemente en los de cálculo.
  • Visual Basic 6.0, salido a mediados de 1998, muy mejorado, incrementó el número de áreas1 e incluyó la posibilidad de crear aplicaciones basadas en Web. Microsoft retiró el soporte de VB6 en marzo de 2008, pero a pesar de ello las aplicaciones que genera son compatibles con plataformas más modernas, como Windows VistaWindows Server 2008Windows 7 y Windows 8.2 3
El soporte estándar para Microsoft Visual Basic 6.0 finalizó el 31 de marzo de 2005, pero el extendido terminó en marzo de 2008.4 La comunidad de usuarios de Visual Basic expresó su grave preocupación y se firmó una petición para mantener el producto vivo.5 Microsoft se ha negado hasta el momento a cambiar su posición sobre el asunto. Irónicamente, en esa época (2005) se da a conocer que el software antiespía ofrecido por Microsoft, "Microsoft AntiSpyware" (parte de la GIANT Company Software), fue codificado en Visual Basic 6.0; su posterior sustituto, Windows Defender, fue reescrito en código C++.6





Características[editar]

Los compiladores de Visual Basic generan código que requiere una o más librerías de enlace dinámico para que funcione, conocidas comúnmente como DLL (sigla en inglés de dynamic-link library ); en algunos casos reside en el archivo llamado MSVBVMxy.DLL (siglas de "MicroSoft Visual Basic Virtual Machine x.y", donde x.y es la versión) y en otros en VBRUNXXX.DLL ("Visual Basic Runtime X.XX"). Estas bibliotecas DLL proveen las funciones básicas implementadas en el lenguaje, conteniendo rutinas en código ejecutable que son cargadas bajo demanda en tiempo de ejecución. Además de las esenciales, existe un gran número de bibliotecas del tipo DLL con variedad de funciones, tales como las que facilitan el acceso a la mayoría de las funciones del sistema operativo o las que proveen medios para la integración con otras aplicaciones.
Dentro del mismo Entorno de desarrollo integrado (IDE) de Visual Basic se puede ejecutar el programa que esté desarrollándose, es decir en modo intérprete (en realidad pseudo-compila el programa muy rápidamente y luego lo ejecuta, simulando la función de un intérprete puro). Desde ese entorno también se puede generar el archivo en código ejecutable (exe); ese programa así generado en disco puede luego ser ejecutado sin requerir del ambiente de programación (incluso en modo stand alone), aunque sí será necesario que las librerías DLL requeridas por la aplicación desarrollada se encuentren también instaladas en el sistema para posibilitar su ejecución.
El propio Visual Basic provee soporte para empaquetado y distribución; es decir, permite generar un módulo instalador que contiene al programa ejecutable y las bibliotecas DLL necesarias para su ejecución. Con ese módulo la aplicación desarrollada se distribuye y puede ser instalada en cualquier equipo (que tenga un sistema operativo compatible).
Así como bibliotecas DLL, hay numerosas aplicaciones desarrolladas por terceros que permiten disponer de variadas y múltiples funciones, incluso mejoras para el propio Visual Basic; las hay también para el empaquetado y distribución, y hasta para otorgar mayor funcionalidad al entorno de programación (IDE).


ARCHIVOS Y ENTRADA/SALIDA DE DATOS

En este capítulo se van a describir varias formas de introducir información en el programa, así como de obtener resultados en forma impresa o mediante escritura en un fichero. Se va a presentar una nueva forma interactiva de comunicarse con el usuario, como son las cajas de diálogo MsgBox e InputBox. Particular interés tiene la lectura y escritura de datos en el disco, lo cual es necesario tanto cuando el volumen de información es muy importante (la memoria RAM está siempre más limitada que el espacio en disco), como cuando se desea que los datos no desaparezcan al terminar la ejecución del programa. Los ficheros en disco resuelven ambos problemas. También se verá en este capítulo cómo obtener resultados alfanuméricos y gráficos por la impresora. 7.1 CAJAS DE DIÁLOGO INPUTBOX Y MSGBOX Estas cajas de diálogo son similares a las que se utilizan en muchas aplicaciones de Windows. La caja de mensajes o MsgBox abre una ventana a través de la cual se envía un mensaje al usuario y se le pide una respuesta, por ejemplo en forma de clicar un botón O.K./Cancel, o Yes/No. Este tipo de mensajes son muy utilizados para confirmar acciones y para decisiones sencillas. La caja de diálogo InputBox pide al usuario que teclee una frase, por ejemplo su nombre, un título, etc. La forma general de la función MsgBox es la siguiente: respuesta = MsgBox("texto para el usuario", tiposBotones, "titulo") donde respuesta es la variable donde se almacena el valor de retorno, que es un número indicativo del botón clicado por el usuario, de acuerdo con los valores de la Tabla 7.1. La constante simbólica que representa el valor de retorno indica claramente el botón clicado. Los otros dos argumentos son opcionales. El parámetro tiposBotones es un entero que indica la combinación de botones deseada por el usuario; sus posibles valores se muestran en la Tabla 7.2. También en este caso la constante simbólica correspondiente es suficientemente explícita. Si este argumento se omite se muestra sólo el botón O.K. El parámetro titulo contiene un texto que aparece como título de la ventana; si se omite, se muestra en su lugar el nombre de la aplicación.



Se puede modificar el valor de tiposBotones de modo que el botón que se activa por defecto cuando se pulsa la tecla Intro (el botón que tiene el focus) sea cualquiera de los botones de la caja. Para ello basta sumar a tiposBotones otra constante que puede tomar uno de los tres valores siguientes: 0 (vbDefaulButton1, que representa el primer botón), 256 (vbDefaulButton2, que representa el segundo botón) y 512 (vbDefaulButton3, que representa el tercer botón). Valor de retorno Constante simbólica 1 vbOK 2 vbCancel 3 vbAbort 4 vbRetry 5 vbIgnore 6 vbYes 7 vbNo Tabla 7.1. Botón clicado por el usuario. Valor tiposBotones Constante simbólica 0 vbOKOnly 1 vbOKCancel 2 vbAbortRetryIgnore 3 vbYesNoCancel 4 vbYesNo 5 vbRetryCancel Tabla 7.2. Botones mostrados en MsgBox. ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 88 Finalmente, se puede incluir en el mensaje un icono ad-hoc por el mismo procedimiento de sumarle al argumento tiposBotones una nueva constante numérica con los siguientes valores y significados definidos por la constante simbólica apropiada: 16 (vbCritical), 32 (vbQuestion), 48 (vbExclamation) y 64 (vbInformation). Es obvio que, por los propios valores considerados, al sumar estas constantes o las anteriores al argumento tiposBotones, la información original descrita en la Tabla 7.2 no se pierde. La Figura 7.1 muestra un ejemplo de caja MsgBox resultado de ejecutar el comando siguiente: lblBox.Caption = MsgBox("Pulse un botón: ", 2 + 256 + 48, _ "Caja de mensajes") donde el “2” indica que deben aparecer los botones Abort, Retry y Cancel, el “256” indica que el botón por defecto es el segundo (Retry) y el “48” indica que debe aparecer el icono de exclamación. Por otra parte, la forma general de la función InputBox es la siguiente: texto = InputBox("texto para el usuario", "titulo", "default", left, top) donde texto es la variable donde se almacena el valor de retorno, que es el texto tecleado por el usuario. Los parámetros "texto para el usuario" y titulo tienen el mismo significado que en MsgBox. El parámetro default es un texto por defecto que aparece en la caja de texto y que el usuario puede aceptar, modificar o sustituir; el contenido de esta caja es lo que en definitiva esta función devuelve como valor de retorno. Finalmente, left y top son las coordenadas de la esquina superior izquierda de la InputBox; si se omiten, Visual Basic 6.0 dibuja esta caja centrada en horizontal y algo por encima de la mitad de la pantalla en vertical. La Figura 7.2 muestra un ejemplo de caja InputBox resultado de ejecutar el comando siguiente: lblBox.Caption = InputBox("Escriba su nombre: ", _ "Caja de entrada", "Miguel Indurain") donde el nombre que aparece por defecto es el del mejor ciclista de los últimos tiempos. Este nombre aparece seleccionado y puede ser sustituido por otro que teclee el usuario.


LECTURA Y ESCRITURA EN FICHEROS SECUENCIALES

 Apertura y cierre de ficheros Para poder leer o escribir en un fichero antes debe ser abierto con la sentencia Open, cuya forma general es la siguiente: Open filename For modo As # fileNo donde: filename es el nombre del fichero a abrir. Será una variable string o un nombre entre dobles comillas (“ ”). modo Para acceso secuencial existen tres posibilidades: Input para leer, Output para escribir al comienzo de un fichero y Append para escribir al final de un fichero ya existente. Si se intenta abrir en modo Input un fichero que no existe, se produce un error. Si se abre para escritura en modo Output un fichero que no existe se crea, y si ya existía se borra su contenido y se comienza a escribir desde el principio.

 El modo Append es similar al modo Output, pero respeta siempre el contenido previo del fichero escribiendo a continuación de lo último que haya sido escrito anteriormente. fileNo es un número entero (o una variable con un valor entero) que se asigna a cada fichero que se abre. En todas las operaciones sucesivas de lectura y/o escritura se hará referencia a este fichero por medio de este número. No puede haber dos ficheros abiertos con el mismo número. Visual Basic dispone de una función llamada FreeFile que devuelve un número no ocupado por ningún fichero. A continuación puede verse un ejemplo de fichero abierto para lectura: Open "C:\usuarios\PRUEBA1.txt" For Input as #1 Después de terminar de leer o escribir en un fichero hay que cerrarlo. Para ello, se utilizara el comando Close, que tiene la siguiente forma: Close # fileNo donde el fileNo es el número que se la había asignado al abrirlo con la instrucción Open. 7.6.2 Lectura y escritura de datos 7.6.2.1 Sentencia Input Existen varias formas de leer en un fichero de acceso secuencial. Por ejemplo, para leer el valor de una o más variables se utiliza la sentencia Input: Input # fileNo, varName1, varName2, varName3, ... donde el fileNo es el número asignado al archivo al abrirlo y varName1, varName2, ... son los nombres de las variables donde se guardarán los valores leídos en el fichero. Debe haber una correspondencia entre el orden y los tipos de las variables en la lista, con los datos almacenados en el fichero. No se pueden leer directamente vectores, matrices o estructuras. Si los datos del disco han de ser escritos por el propio programa, conviene utilizar la sentencia write (mejor que Print) para garantizar que los valores están convenientemente separados. La sentencia Write se verá posteriormente. ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 94 7.6.2.2 Función Line Input y función Input La función Line Input # lee una línea completa del archivo y devuelve su contenido como valor de retorno. 




Su forma general es: varString = Line Input #fileNo Conviene recordar que en los ficheros de texto se suele utilizar el carácter return (o Intro) para delimitar las distintas líneas. Este es el carácter ASCII nº 13, que por no ser un carácter imprimible se representa en Visual Basic 6.0 como chr(13). En muchas ocasiones (como herencia del MS-DOS) se utiliza como delimitador de líneas una combinación de los caracteres return y linefeed, representada en Visual Basic 6.0 como chr(13)+chr(10). En la cadena de caracteres que devuelve Line no se incluye el carácter de terminación de la línea. Para leer todas las líneas de un fichero se utiliza un bucle for o while. Visual Basic 6.0 dispone de la función EOF (End of File) que devuelve True cuando se ha llegado al final del fichero. Véase el siguiente ejemplo: Do While Not EOF(fileNo) miLinea = Line Input #fileNo ... Loop También se puede utilizar la función Input, que tiene la siguiente forma general: varString = Input(nchars, #fileNo) donde nchars es el número de caracteres que se quieren leer y varString es la variable donde se almacenan los caracteres leídos por la función. Esta función lee y devuelve todos los caracteres que encuentra, incluidos los intro y linefeed. Para ayudar a utilizar esta función existe la función LOF (fileNo), que devuelve el nº total de caracteres del fichero. Por ejemplo, para leer todo el contenido de un fichero y escribirlo en una caja de texto se puede utilizar: txtCaja.text = Input(LOF(fileNo), #fileNo) 7.6.2.3 Función Print # Para escribir el valor de unas ciertas variables en un fichero previamente abierto en modo Output o Append se utiliza la instrucción Print #, que tiene la siguiente forma: Print #fileNo, var1, var2, var2, ... donde var1, var2,... pueden ser variables, expresiones que dan un resultado numérico o alfanumérico, o cadenas de caracteres entre dobles comillas, tales como “El valor de x es...”. Considérese el siguiente ejemplo: Print #1, "El valor de la variable I es: ", I donde I es una variable con un cierto valor que se escribe a continuación de la cadena. Las reglas para determinar el formato de la función Print # son las mismas que las del método Print visto previamente.

leer y escribir un archivo de acceso aleatorio

Leer y escribir en una archivo de acceso aleatorio. Funciones Get y Put Se utilizan las funciones Get y Put. Su sintaxis es la siguiente: Get #fileNo, registroNo, variableObjeto Put #fileNo, registroNo, variableObjeto La instrucción Get lee un registro del fichero y almacena los datos leídos en una variable, que puede ser un objeto de una determinada clase o estructura. La instrucción Put escribe el contenido ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 96 de la variable en la posición determinada del fichero. Si se omite el número de registro se lee (escribe) a continuación del registro leído (escrito) anteriormente. 

Véase el siguiente ejemplo: FileNo=FreeFile size=Len(unObjeto) Open filename for Random as #fileNo Len=size Get #fileNo, 3, size Con este ejemplo, se ha abierto el fichero filename de la misma forma que se realizó en el ejemplo anterior, pero ahora, además se ha leído un registro de longitud size, y más en concreto, el tercer registro. Si se quisiera modificar el valor de este registro, no habría más que asignarle el valor que se quisiera, para a continuación introducirlo en el fichero mediante la sentencia siguiente: Put #fileNo, 3, size 7.8 FICHEROS DE ACCESO BINARIO La técnica a emplear es básicamente la misma que con los ficheros de acceso aleatorio, con la salvedad de que en lugar de manejar registros, en los ficheros de acceso binario se trabaja con bytes. Véase el siguiente ejemplo: FileNo=FreeFile Open filename for Binary as #fileNo Get #1, 4, dato dato = 7 Put #1, 4, dato Close #1 En el anterior ejemplo se puede observar como primero se introduce en la variable dato el valor del cuarto byte del fichero filename, para posteriormente asignarle el valor 7, e introducirlo de nuevo en el cuarto byte de filename. ANEXO A: Consideraciones adicionales sobre datos y variables página 97 8.


 ANEXO A: CONSIDERACIONES ADICIONALES SOBRE DATOS Y VARIABLES En este Anexo se incluyen algunas consideraciones de interés para personas que no han programado antes en otros lenguajes. A continuación se explican las posibilidades y la forma de almacenar los distintos tipos de variables. 8.1 CARACTERES Y CÓDIGO ASCII Las variables string (cadenas de caracteres) contienen un conjunto de caracteres que se almacenan en bytes de memoria. Cada carácter es almacenado en un byte (8 bits). En un bit se pueden almacenar dos valores (0 y 1); con dos bits se pueden almacenar 22 = 4 valores (00, 01, 10, 11 en binario; 0, 1 2, 3 en decimal). Con 8 bits se podrán almacenar 28 = 256 valores diferentes (normalmente entre 0 y 255; con ciertos compiladores entre -128 y 127). En realidad, cada letra se guarda en un solo byte como un número entero, el correspondiente a esa letra en el código ASCII (una correspondencia entre números enteros y caracteres, ampliamente utilizada en informática), que se muestra en la Tabla 8.1 para los caracteres estándar (existe un código ASCII extendido que utiliza los 256 valores y que contiene caracteres especiales y caracteres específicos de los alfabetos de diversos países, como por ejemplo las vocales acentuadas y la letra ñ para el castellano).