Cursosindustriales.net Página 1

Documentos relacionados
Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

Arrays dinámicos y arrays estáticos con Visual Basic y.net. Redim, Redim Preserve, Erase. Ejemplos (CU00342A)

Programación en Visual Basic Ricardo Rodríguez García

FUNDAMENTOS DE INFORMÁTICA

UNIDAD 4. MODIFICAR TABLAS DE DATOS

PERIODO 3 HOJA DE CÁLCULO CONCEPTOS INTERMEDIOS OPERACIONES CON CELDAS, FILAS Y COLUMNAS EN EXCEL SELECCIONAR COPIAR MOVER BORRAR

OPENOFFICE IMPRESS. Creación básica de presentaciones digitales

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

INTRODUCCIÓN DE DATOS EN LA HOJA DE CÁLCULO

Microsoft Office Word

Funciones básicas del depurador

Unidad 5. Tablas. La celda que se encuentra en la fila 1 columna 2 tiene el siguiente contenido: 2º Celda

Manejo de Bases de Datos Mysql en Lenguaje C

ACTIVIDADES BASE DE DATOS ACCESS 2007

DAVID DIAZ VALDIVIA INFORMATICA APLICADA I

En la parte inferior de la pantalla se podrá ver el estado de la última copia y la fecha y hora actual.

INSTITUCION EDUCATIVA MANUEL ANGEL ANACHURY AREA: TECNOLOGIA E INFORMATICA

Cuando no está abierto ningún menú, las teclas activas para poder desplazarse a través de la hoja son:

WorkManager E.D. Manual guía de usuario Diseñador de formularios

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes:

xvsvxcv Manual Microsoft Excel Básico

FUNCIONES EN EXCEL III

Para poder comenzar a trabajar con Excel, es necesario considerar los siguientes términos:

1.- CREACIÓN DE CONSULTAS.

Objetos OLE 1. IMAGEN DE FONDO

PROYECTO FINAL DE CARRERA Manual de Usuario.

USO DEL OBJETO JTABLE

Operación de Microsoft Excel. Guía del Usuario Página 49. Centro de Capacitación en Informática

GUÍA DE USUARIO: HAIKU DECK

MANUAL DE PROGRAMACIÓN PARA BASES DE DATOS 1.0 MySQL

Tema 3. Aplicaciones de Tipo Consola

CREAR TABLAS EN BASES DE DATOS CON phpmyadmin. TIPOS DE DATOS BÁSICOS (VARCHAR, INT, FLOAT). INSERTAR FILAS. (CU00840B)

COLEGIO PABLO DE TARSO IED CONSTRUCCION DE PROYECTOS DE VIDA PRODUCTIVOS DREAMWEAVER UNO- PRÁCTICAS DOC RAUL MONROY PAMPLONA

Acceso a Datos con Visual Basic

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 5: Informes

Sesión No. 10. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access)

Microsoft Word. Microsoft Word 2013 SALOMÓN CCANCE. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 3: Elementos esenciales del formulario

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Macros y Visual Basic para Aplicaciones en Excel

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

Manual configuración aplicaciones

ESCUELA DE INFORMÁTICA

Creación y manejo de la base de datos y tablas

11.2. Manual de GTC 2.0: El primer contacto

TECNOLOGÍA E INFORMÁTICA

COMBINAR CORRESPONDENCIA

Bases de Datos Relacionales con Base de OpenOffice y consultas SQL para Tecnología de la Información.

Trabajar con diapositivas

Manual de Instrucciones para el uso con un ordenador

CLASE 1 de VISUAL BASIC (V6)

Manual Word Macros y Elementos rápidos

Al entrar en Excel nos aparecerá la siguiente ventana:

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)

Vamos a profundizar un poco sobre los distintos tipos de datos que podemos introducir en las celdas de una hoja de cálculo

TALLER DE EXCEL BÁSICO

PowerPoint 2010 Edición del contenido

FIRMA ELECTRÓNICA INSTALACIÓN Y USO DE CERTIFICADOS EN ARCHIVO PKCS#12 MANUAL DE USUARIO V1.1 14/07/2015

HACER COPIAS DE SEGURIDAD EN WINDOWS

Fila: Es un conjunto de varias celdas dispuestas en sentido horizontal.

Ejecuta el modo XP sin virtualización de hardware

PROGRAMAS PARA LA CLASSPAD MANAGER.

MICROSOFT EXCEL 2007

En esta lección vamos a ver más utilidades y opciones sobre la

EBRARY. Descripción general de la base Permite el acceso a más de 31,800 libros electrónicos en texto completo de múltiples disciplinas.

DEMOSTRACION DE UNA APLICACIÓN N-CAPASCON JAVA- POSTGRESQL

TUTORIAL SOBRE HOJAS DE CALCULO

UNIDAD 1. writer PRIMEROS PASOS. CURSO: LibreOffice

Seleccione en el escritorio el programa Sucosoft S40 y darle doble click.

Cómo configurar formatos Wiegand personalizados

LABORATORIO Nº 9 TABLAS DINÁMICAS

PROPIEDADES DE LOS CAMPOS. Cada campo de una tabla dispone de una serie de características que proporcionan un control

Manual de OpenOffice Impress

2. Inserta la tabla. Para comenzar el proceso de creación de la tabla, tendrás que insertar una en tu hoja de cálculo.

Importación de Datos

TRABAJAR OBRAS COMO TALLER MECÁNICO

Gestión de bases de datos de mysql desde Dreamweaver

Microsoft Word. Microsoft Word 2013 SALOMÓN CCANCE. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Tema: Entorno a C# y Estructuras Secuenciales.

OPERACIONES DE EDICIÓN. SERIES.

UNIDAD 2. writer USANDO TABLAS. CURSO: LibreOffice

Combinación de correspondencia en Microsoft Office Word 2003

Calificaciones de Moodle

Unidad 2. Elementos de Word2007 (I)

CONSEJOS SOBRE WORD 2012

Nimbus, servicios en la nube. Google Drive para PC

MANUAL Y ACTIVIDADES. Edublogg.wordpress.com. Caeiro Fábregas - Pérez

Uso básico desde la propia página del sitio Sharepoint

PRÁCTICAS DE OPENOFFICE CALC

Manejo de Filas, Columnas, Celdas y Rangos

APUNTE TABLAS MICROSOFT WORD 2003

Interprete comandos de Windows.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

MANUAL DE USUARIO MODULO DE ACTIVOS FIJOS

CRECE AMB INTERNET. Aprende a utilizar el ordenador ( 4 )

Curso de Visual Basic Lección 8 Area Interactiva -

ACCESS: PRÓLOGO ACCESS EJERCICIO PRÓLOGO ESTRUCTURA DE UNA BASE DE DATOS: TABLAS, CONSUL- TAS, FORMULARIOS E INFORMES

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Transcripción:

Cursosindustriales.net Página 1

CURSO DE VB.NET. MATRICES Cuando hablamos de matrices no nos estamos refiriendo a las variables matemáticas que hacen posible operaciones aritméticas de diferente dificultad. No, en programación las matrices o arrays son objetos que sirven para acumular varias variables en una misma dirección de memoria. Cada vez que utilizas una variable o constante en tu programa Visual Basic.NET, dicha variable se guarda automáticamente en una dirección de memoria que el CLR escoge convenientemente. Además las variables tienen un tamaño específico, lo cual ocupan un lugar y un espacio en memoria. Cuando programas un array o matriz, lo que estás haciendo es reservar una zona de la memoria y un espacio para dicha zona en la cual acumularás tantas variables como espacio hayas reservado. Por esa razón, cuando declaras un array, debes de indicar el tipo de variable y el número máximo de elementos que contendrá el array. Cursosindustriales.net Página 2

TRABAJAR CON ARRAYS. Ya he mencionado que los arrays son variables que se engloban dentro de un conjunto de variables. Trabajar con arrays no es tan difícil como hacerlos con matrices reales, pero tiene su forma de proceder a ello. Por ejemplo, imagina que un array tiene acumulada 5 variables. Sabemos que el CLR ha acumulado 5 espacios de memoria para dicho array y que el espacio de memoria reservado varía en función del tipo de variable que se haya declarado. Supón que queremos utilizar solo una de la variable que está en el array. Para ello, solo debemos de llamar al número dentro del array que representa. Por ejemplo imagina que queremos llamar a la variable que está en la posición cuarta. Deberíamos pedir que nos devolviesen el valor de dicha posición mediante la forma variable[3] para que CLR nos devolviera el valor de dicha variable. Pero vamos paso a paso. Declaración de arrays. Un array se declara de la misma forma que una variable normal, pero la única diferencia está en que se debe de poner entre paréntesis el valor máximo que ocupará el array (el valor máximo en cuanto a variables tendrá). Por tanto un array sería: Dim grupo (5) as integer El array anterior define un array llamado grupo en el cual existen 5 variables del tipo integer, lo cual CLR reservará en memoria el valor del mismo (4294967296 = 4 bits) por cada uno de los elementos del array, es decir 4 x 5 = 20 bits. Es importante tener claro el tamaño que ocupará el array en memoria ya que de ser limitada la memoria del dispositivo que ejecutara el programa con el array establecido tendría el riesgo de no poder ejecutarse correctamente o producir fallo en el sistema. Otro detalle importante es el hecho de que el array empieza con el sistema cero, es decir el array anterior está compuesto de: grupo (0) as integer grupo (1) as integer grupo (2) as integer grupo (3) as integer grupo (4) as integer Cursosindustriales.net Página 3

Observarás que no existe array (5), ya que al igual que en la declaración de cadenas e Ítems, el valor cero es el primer valor que tiene en cuenta el CLR de Visual Basic.NET. Redimensionar arrays. Supón que en tu programa quieres guardar en forma de array ciertos valores que se generan en la aplicación, para que así no tengas que crear nuevas variables. Lo bueno de los arrays en cualquier lenguaje de programación es que, la mayoría son redimensiónales, es decir, se pueden volver a escribir. En nuestro ejemplo anterior, supón que queremos agregar más variables al array anterior. Para proceder se usa la instrucción REDIM (redimensión) para volver a rediseñar el array. Para usarla solo debemos de llamar al array y asignarle el nuevo número de elementos que contendrá, tal como se muestra a continuación. ReDim grupo (7) Ahora el array grupo contendrá siete elementos en vez de cinco. Como puedes ver no es necesario que llames al tipo de variable, ya que está guardado en memoria (cuando declaraste la anterior array). Simplemente añades más elementos. También se puede suprimir elementos siempre que no estén en uso: ReDim grupo (4) Esta instrucción redimensiona el array y reduce sus elementos. Iniciar el array: Acceso. Como has visto, hemos creado un array con un número de elementos (a partir de ahora Ítems), que reservan un espacio en memoria para todo su contenido. En nuestro ejemplo no hemos asignado ningún valor a cada Ítem del array, lo cual CLR reserva todo el espacio para cada Ítem. En Visual Basic.NET podemos establecer un valor fijo para cada Ítem del array. Para ello, se puede proceder de dos maneras: Cuando se inicializa el array se dan los valores de cada Ítem. Se establecen los valores independientemente. En el primero, se suele proceder dejando los paréntesis vacíos y asignando los valores dentro de una apertura y cierre de llave, tal como: Cursosindustriales.net Página 4

Dim grupo () As Integer = {1, 2, 3, 4, 5} Como puedes ver, cada valor separado por coma, pertenece a un Ítem del array. Puedes observar que a pesar de no haber introducido ningún valor en éste array entre paréntesis, al haber asignado cinco valores en concordancia con el tipo de variable, el array queda redimensionado automáticamente y con un valor de 5 ítems en su interior. Además cada Ítem, tiene un valor numérico específico, lo cual hace que el CLR no reserve toda la memoria específica para ese tipo de array ahorrando espacio de la misma. La otra forma de dar valor a cada Ítem es hacer que, una vez creada el array, dar valor a cada Ítem mediante la fórmula siguiente: Array (Ítem) = valor Por lo que en nuestro ejemplo, imagina que queremos asignar al primer Ítem, un valor de 10. Deberíamos de proceder así: grupo (0) = 10 Ahora en nuestro array, el Ítem primero (0) vale 10. No es obligatorio asignar valores a un array; puedes añadirles valores más tarde. Redimensionar un array con valores. Existe la posibilidad de que tengas que redimensionar a lo largo de tu aplicación. Eso no es ningún problema como ya has observado. El problema pudiera existir si el array tiene valores introducidos en cada Ítem. Supón en nuestro ejemplo anterior los valores de nuestro array: Dim grupo () As Integer = {1, 2, 3, 4, 5} En esta condición el array vale grupo(5). Si ahora redimensionamos el espacio del array, veremos que se han borrado los valores de los Ítems, y que el nuevo array tiene 10 ítems vacíos: Cursosindustriales.net Página 5

Para evitar que se produzcan errores en la redimensión y no se pierda los Ítems almacenados se tiene que utilizar la instrucción PRESERVE: Dim grupo () As Integer = {1, 2, 3, 4, 5} ReDim Preserve grupo(10) En esta instrucción lo que hacemos es "preservar" los valores almacenados en el array antes de proceder a su redimensión. Ahora sí, se guardan los valores anteriores al redimensionar el array: Como ves en la imagen, cuando se llama al array, se está procediendo a mostrar sus elementos. Manipulación del array y sus Items. Como puedes ver hasta ahora, el array se puede manipular al igual que una variable o constante, simplemente hay que asignar un Ítem para sacar su valor o para insertar un valor específico en él. En programación se suele asignar directamente valores a los arrays, pero también se suele hacer que sea el propio programa el que inserte los valores de los arrays tal y como se muestra en el ejercicio siguiente: Cursosindustriales.net Página 6

Puedes ver que el programa te pide que insertes los valores que tendrá el array. Ahora para comprobar los valores simplemente debes de verlos mediante el bucle For correspondiente. Cursosindustriales.net Página 7

Si has sido observador, podrás ver que cuando declaramos un array y definimos el número máximos de elementos que contendrá, vemos que cuando lo reproducimos podemos ver siempre el valor del array + 1. Eso es debido siempre al Ítem cero. Así que si designamos un array con 5 ítem, lo que realmente nos va a crear el sistema es un array con 6 elementos (0, 1, 2, 3, 4, 5), pues al crear un array y asignarle un número de ítem, estás indicando un tope numérico. También podemos cambiar el número almacenado en el interior del Ítem del array. Para ello, simplemente llama al Ítem en cuestión y asígnale otro valor establecido. En el ejemplo anterior he creado un array con 6 elementos y al tercer elemento (ten en cuenta el Ítem cero), le he asignado el valor de 300. Cambiar el valor de un Ítem es tan fácil como asignar un nuevo valor al mismo. Pero ten en cuenta que para cambiarlo, el programa no debe de estar utilizando el valor en concreto, pues de lo contrario podría producirse un error de sobre escritura. Eliminación de un array. Es muy común en programación usar arrays para después eliminarlos. Cuando se elimina un array se está recuperando el espacio en memoria que ocupa dicho elemento, lo cual agiliza la velocidad del programa. Para eliminar completamente un array se utiliza la instrucción ERASE y se llama al array. En nuestro ejemplo, queremos eliminar el array grupo: Erase grupo En la memoria del ordenador ya no quedará constancia del array y entonces se liberará ese espacio ocupado por el mismo, en la memoria. Cursosindustriales.net Página 8

El siguiente programa daría un error de lectura, ya que principalmente creamos un array con seis elementos y al tercer elemento le asignamos un valor de 300. Inmediatamente, el array queda eliminado. En la siguiente línea, hacemos que se muestre el valor del Ítem tercero en pantalla, pero como hemos eliminado el array entero de la memoria, el programa no puede acceder a la misma y genera un error de lectura. Por eso es muy importante que cuando vayas a manipular información, ésta esté disponible. Array de String Hasta ahora hemos visto como los arrays pueden ser manipulados y tener contenido numérico. Pero los arrays permiten almacenar cualquier tipo de dato permitido por Visual Basic.NET. Si es verdad que la mayoría de los datos que manipulan los arrays son los datos numéricos y los datos alfanuméricos. Como también manipulan cadenas de caracteres, podemos establecer arrays de String. Un array de String es similar a cualquier otro array; se crea de la misma forma, se manipula de igual manera, se redimensiona, etc. Lo único que hay que tener en cuenta a la hora de utilizarlo o crearlo es que el valor que contenga dentro de cada Ítem debe de estar entre comillas dobles para que no genere error el CLR al compilarlo. De ésta forma, y siguiendo nuestro ejemplo creamos nuestro array de String: Dim grupo () As String = "Hola", "Mundo"} La creación y el diseño del array siguen siendo iguales, pero se debe de poner las dobles comillas. Cursosindustriales.net Página 9

PROPIEDADES DE LOS ARRAYS. A continuación se muestra algunas de las propiedades y métodos que más usaremos cuando trabajemos con arrays. Length. Esta propiedad devuelve el número de elementos que tiene el array. Ten en cuenta a la hora de usarlo que el número de Ítems es un número mayor del expresado debido a su valor cero. Por tanto cuando usemos length para saber en número de Ítems de un array nos devolverá el número + 1. En el ejemplo: Nos devolverá 6 Ítems. Dim grupo(5) As Integer Esta forma de utilizar los Ítems que tiene Visual Basic.NET es exclusiva del lenguaje Visual Basic, ya que aunque la librería Estándar NET.FrameWork incluye las DLL s para manipular dicho array, no tiene en cuenta el Ítem cero. Por tanto C++, C# y otros lenguajes de.net no tienen en cuenta el Ítem cero. Solo lo tiene en cuenta Visual Basic. NET. A la hora de mostrar el array, Visual Basic.NET nos muestra todo el conjunto. Podemos hacer que solo nos muestre los Ítems que creemos nosotros restando a la longitud máxima del array un valor negativo (representando el cero), tal como se muestra en la imagen: Cuando utilizamos la propiedad length, y la asignamos a -1, estamos quitando el primer elemento del array dimensional, es decir el cero. Como puedes ver el contenido se expresa del 1 al 5. Pero imagina el siguiente ejemplo: Cursosindustriales.net Página 10

Pues el siguiente programa te muestra una cadena de array de seis Ítems. Como puedes ver, los Ítem están vacíos ya que no hemos insertado valores algunos para el array, por lo que te mostrará seis ceros. Entonces, no sirve la propiedad Length para éste caso? Claro que sirve, pero para que te muestre solo cinco valores debes de restar otro número más tal y como se procede en el siguiente programa: Asignación por llaves Gracias a las llaves en Visual Basic.NET, cuando utilicemos arrays podremos sustituir dentro de las llaves el Ítem específico que queremos utilizar, sobre todo si queremos visualizar o trabajar con dicho Ítem. En nuestro ejemplo anterior vimos que: Cursosindustriales.net Página 11

Por cada línea del array se provoca una respuesta con el bucle y devuelve el valor del Ítem en cuestión. Como el valor de cada Ítem está vacío, nos devuelve un cero. Podemos mejorar el código del programa usando las llaves mágicas que nos facilitan la tarea de manipular los valores de los Ítems y mostrarlos en pantalla. Para manipular los Ítems de un array debes de llamar a su primer elemento (el Ítem cero), y asignarlo a una acción consecuente para que muestre o use su valor. Resolviendo en el anterior código nos queda que: Puedes ver que hemos establecido el número de Ítems que tiene el array (habría que restarle el Ítem cero), mediante el uso de llaves. Puedes observar que cuando queremos tratar los Ítems debemos de poner el ítem que queremos tratar a partir del cual se producirá una acción concreta. En el ejemplo yo he utilizado {0} para indicar que empiece a contar desde el Ítem cero hasta el valor máximo. Al igual que cuando se ejecuta un ImputBox, debes de llamar después a la variable que la va a usar (la variable del bucle), para que se reproduzca bien el Cursosindustriales.net Página 12

programa, pues de no llamar a ésta variable, no se produciría la secuencia ordenada. Para que nos muestre solo los cinco valores debemos de cambiar el bucle y hacerlo tal que así: For a = 0 To grupo.length - 2 Console.WriteLine("Este es el Item: {0}", a) Next Esto nos mostrará cinco Ítems (desde el cero hasta el cuatro), pues cuando se llama a la propiedad Length -1 estamos haciendo referencia al último elemento del array (en este caso el 5), pues si hacemos Length - 2, llamamos al elemento cuarto. Esto no tiene más secretos que el de estar trasteando continuamente con la propiedad para sacarle su provecho. El uso de las llaves no es reservado al uso de los arrays, sino que está reservado en general al formateo de texto en proyectos de consola de comandos. Así podríamos establecer entre llaves un formato numérico decimal como el siguiente: Puedes ver que hemos establecido mediante las llaves {0, 4}, lo que quiere decir que mostrará el bucle de manera que dejará un espacio antes de mostrar el Ítem o patrón definido y lo establecerá durante 4 caracteres tal y como puedes ver en pantalla, y que cada carácter de los Ítems ocupa cuatro espacios en su línea. Cursosindustriales.net Página 13

Sort. Más que una propiedad, es un método. Sort sirve para ordenar el valor de los Items dentro del array. Al ser un método se debe de usar conjuntamente con el array de la forma: El uso se muestra así: Array.Sort (array) Observa una particularidad: En el código del Console.writeLine, hemos utilizado una llave {0} para mostrar la lista de los Items del array. Pero además he utilizado otra llave {1} para asignar el valor del array al número del array. También hemos utilizado las referencias a las dos variables al final de la instrucción para que se nos muestre correctamente el array. La instrucción Array.Sort (grupo), ordena el valor de los Items (no el valor de la lista de los mismos). Puedes ver el efecto en la siguiente imagen: Cursosindustriales.net Página 14

Copy. Esta propiedad permite realizar la copia de un array en otro array. Así que de tal forma si asignas un array a una variable nueva, habrás copiado el array: Dim grupo As Integer = {1, 2, 3, 4, 5} Dim grupo1() As Integer grupo1 = grupo Con ese código ya has copiado el array grupo dentro del array grupo1. Has de tener en cuenta que un array es un grupo de variables que están definidas por tener un volumen de espacio, por tal motivo debes de tener un array para copiar el contenido de otro, es decir no puedes copiar un array dentro de una variable normal o constante. Prácticamente, cuando copiamos un array, lo único que estamos haciendo es copiar una referencia a los datos almacenados en el array. Es decir, en el array grupo, cuando lo copiamos al array grupo1, solo estamos copiando las referencias del primer array (Byref) por lo que si modificamos el valor de cualquier Ítem en el array original, también se modificará automáticamente en la copia. El problema de copiar arrays es que por cada array se almacena en memoria sus valores, y aunque las copias sean valores de referencias, ocupan espacio en memoria lo cual hace que el programa sea más lento en proporción al valor del array original. Podemos usar el método COPY para realizar una copia completa de los datos de un array. Éste sistema de copia requiere que el array en el cual se va a copiar el array original tenga que tener las mismas dimensiones que el primero. Por eso se utiliza la propiedad Length -1 para obtener el tamaño del array original, tal como se indica en el siguiente código fuente: Cursosindustriales.net Página 15

Lo bueno de éste método de copia es que no realiza una copia por referencia sino que realiza una copia entera del array, y si se modifica el original, no se modificará la copia creada, ya que se ha realizado la copia del primero como si de un nuevo array se tratase. En el ejemplo puedes ver que hemos modificado el valor del cuarto Ítem (grupo(3) = 222). Si utilizásemos la copia normal sin usar el método que he descrito, el valor de la copia de éste Ítem también cambiaría, pero como es una copia nueva, no cambia en la misma, sino en la original. Cursosindustriales.net Página 16

Reverse. Éste método invierte el valor de los Items del array en cuanto que el primero será el último y el último el primero. La sintaxis es la siguiente: Array.Reverse (array) ARRAYS MULTIDIMENSIONALES. Hasta este momento hemos visto que los arrays son de una única dimensión (planos); pero Visual Basic.NET permite usar arrays de más de otra dimensión, esto es usar número complejos o conjuntos de datos. Por ejemplo imagina que quieres manipular una tabla de Excel la cual está formado por campos de filas y columnas en las cuales en cada campo hay un dato que quieres utilizar en tu array. Para coger dicho dato deberías de establecer el número de fila y el número de columna de la tabla Excel, lo cual para cada Ítem del array necesitarías dos datos como son la fila y la columna. Éste tipo de array (array bidimensional) son los más usados. Para crear un array bidimensional se procede de la forma siguiente, utilizando una coma (,) por cada dimensión establecida en el array: Cursosindustriales.net Página 17

Dim grupo (,) As Integer = { {valores X}, {valores Y} } Se pueden crear tantas dimensiones como se quiera siempre que se utilicen las llaves necesarias para dicho fin: Dim grupo (,,) As Integer = { { {valores X}, {valores Y} }, { {{valores XX}, {valores YY} } } El usar arrays multidimensionales es bueno para realizar operaciones matemáticas, aunque los programadores no suelen usarlos mucho debido a su complejidad, sobre todo por su dificultad exponencial. Los arrays dimensionales se pueden redimensionar al igual que los arrays normales. Podemos usar tanto ReDim como Preserve, pero éste último ha de tratarse con cuidado ya que esta instrucción solo cambia la última dimensión (y no la primera establecida en el array dimensional). Por ese motivo a los programadores les gusta usar ReDim para redimensionar todo el array y dejar Preserve para casos concretos. ReDim no puede cambiar el número de dimensiones que tiene el array, solo puede redimensionar el número de Items para la dimensión establecida. En el siguiente ejemplo, manipulo el array bidimensional mediante ReDim y Preserve. La propiedad GetUpperBound(), obtiene el límite superior de la dimensión. Por tanto al invocar ésta función estamos estableciendo el máximo valor del array dimensional para poder tratar con él. Entre paréntesis se añade el valor que estableceremos de referencia para los diferentes grupos de control. Cursosindustriales.net Página 18

La instrucción ReDim Preserve grupo (a, b +2), está dimensionando los valores que tomará el array dimensional. Los bucles muestran los Ítem del array dimensional y sus valores. Cursosindustriales.net Página 19

PRACTICA. Videoclub En este apartado vamos a continuar con nuestro programa VideoClub, y utilizaremos lo aprendido hasta el momento para introducirlo en nuestra aplicación; lo último que vimos lo puedes ver en la imagen: Recuerda que los nombres por defecto son los que asigna Visual Basic.NET a cada control, y son los siguientes: Button 1 Agregar Button 2 Borrar Button 3 Borrar Todo Button 4 Guardar Textbox1 "Introduce un título" Label1 Listbox1 La finalidad del programa es guardar una lista de películas en un directorio o carpeta y dentro de un archivo. Y para ello, en el anterior capítulo vimos cómo proceder a crear nuevos directorios. Cursosindustriales.net Página 20

Crear directorio raíz de la aplicación. Vamos a entrar en materia creando nuestro directorio raíz en el cual se van a insertar tanto los archivos en los cuales se guardarán los datos que manejará nuestra aplicación como la base de datos que más tarde usaremos para llamar a los datos guardados. Lo normal de una aplicación, cuando instalas un programa es que te cree los archivos y carpetas necesarias para ese programa, en un directorio por defecto y que puedes editar su ubicación. Como el proyecto que vamos a realizar no es una aplicación de instalación, sino que es un ejecutable, designaremos que cuando se cargue el programa Videoclub, se cree en un primer uso la carpeta raíz. En posteriores usos del programa, la carpeta no se recreará de nuevo. Y como queremos que la carpeta esté localizada junto a la aplicación, crearemos la carpeta en el mismo directorio en el cual se ha abierto la aplicación. Visual Basic.NET designa al mismo espacio que abre la aplicación, como Application.StartupPath y la sintaxis es la siguiente: Dim carpeta as string = Application.StartupPath & "\Nombre_Carpeta\" My.Computer.FileSystem.CreateDirectory(carpeta) Esta sentencia te crea una carpeta llamada Nombre_Carpeta, ubicada en el mismo directorio que el que se ha ejecutado la aplicación. Pero puedes seleccionar otro directorio específico mediante el uso de la condición My.Computer.SpecialDirectories y ahí elegir los directorios más usados por Windows, como por ejemplo, el Escritorio, Mis Documentos, Archivos de Programas, etc., etc. Nosotros de momento vamos a crear una carpeta en el mismo directorio de la aplicación. NOTA: Si no hubiésemos declarado Application.StartupPath, CLR crearía la carpeta en el directorio en el que se ejecutara la aplicación sin que tuviésemos que haberla creado nosotros mismos. Ya has visto que para crear una carpeta debes de asignar una variable del tipo String a la dirección en la cual se creará (en este caso en la misma ventana en la que se ejecute la aplicación (Application.StatupPath)), y asignarle un nombre válido. Y como queremos que la carpeta se cree automáticamente al ejecutar el programa, programaremos la instrucción dentro del proceso principal del formulario, tal como muestra la imagen: Cursosindustriales.net Página 21

Cuando ejecutas la aplicación solo se muestra el formulario. Ya sabes que las aplicaciones que no están compiladas se guardan en un directorio por defecto de Visual Studio 2010. En concreto en Mis Documentos, dentro de la carpeta Visual Studio 2010, existe otra carpeta que se llama Projects, y dentro de ésta existe otra carpeta llamada VideoClub (que se creó al guardar tu proyecto de VideoClub). Bien, dentro de la carpeta Videoclub, se guardan los archivos y carpetas temporales necesarias para la ejecución de la aplicación, y en la carpeta Bin, y después en la carpeta Debug, están los archivos que has creado. Puedes ver que en esta carpeta está el archivo ejecutable y que además se ha creado la carpeta VideoClub. Cursosindustriales.net Página 22

Inserción de datos. Ya tenemos creada nuestro directorio por defecto en el que, en un futuro se guardarán nuestros archivos de texto y la base de datos, e imágenes. Ahora empezaremos a introducir datos en el TextBox1 de Introducir para que se puedan agregar a la lista del ListBox1. Para introducir datos en la lista que provienen del TextBox1 podemos proceder de dos maneras. A TRAVÉS DEL BOTÓN DE AGREGAR. Simplemente utilizaremos el Button1 en su evento principal Clic, para insertar el contenido del control TextBox1. La sintaxis del código se expresa de la siguiente manera: ListBox1.Items.Add (TextBox1.Text) Ya que lo que queremos hacer es que en el control ListBox1, se agregue el contenido del TextBox1. Como puedes observar se utiliza la librería Items y el atributo Add para realizar dicha acción; literalmente significa que el contenido de ListBox1 será el que muestra el control entre paréntesis. Con esto cada vez que escribamos en el control TextBox1 y pulsemos sobre el Button1, en la lista aparecerá el texto del control TextBox1. Cursosindustriales.net Página 23

A TRAVÉS DEL FORMULARIO Otra opción es realizar la acción a través del formulario y es que cada vez que se pulse el Botón del teclado INTRO, se agregue el contenido del TextBox1 en el interior del control ListBox1. Para ello, y habiendo asignado al Button1 el código anterior, en las propiedades del formulario buscamos la propiedad AcceptButton y en el cuadro expansible que se muestra marcamos el Button1: Esto hará que cuándo pulsemos Intro se ejecute la instrucción del Button1. Por decirlo de otra manera, esta propiedad es un acceso directo del control establecido y que pulsando Intro, ejecuta la acción. Ya hemos introducidos datos en el control ListBox1, pero ahora tenemos un fallo, y es que en el control TextBox1, se mantiene el texto anterior, y debemos de estar borrando constantemente de forma manual el texto remanente del control. Esto, cuando tienes que insertar una enorme lista de películas, se hace arto cansino, con lo que estableceremos en elbutton1 de Agregar una instrucción que borre el contenido del TextBox1 justo después de añadirse su contenido al ListBox1. Para ello abre el código del Button1 y escribe la siguiente línea: TextBox1.Text = "" Ésta instrucción borrará el contenido del control TextBox1, que es el control en el cual se escriben los títulos de las películas que después guardaremos en la lista principal. Cursosindustriales.net Página 24