Está en la página 1de 4

Ejercicio con Arreglos

Esta es una pequeña aplicación que utiliza arreglos. De paso utiliza otros conceptos, como
los bucles y archivos delimitado por comas.

1. Archivo delimitado por comas (CSV).


En esta página encontrará una descripción más completa que explica en qué
consiste un archivo delimitado por comas:
https://es.wikipedia.org/wiki/Valores_separados_por_comas
Lo que ampliaré es que resulta de utilidad cuando se quiere exportar datos, por
ejemplo de excel a MySQL al no contarse con un software que realice tal tarea. Sin
embargo tiene el inconveniente de que cuando se exporta, las letras con tilde (á,é,
etc) o más general, los caracteres especiales no son reconocidos, teniendo que
previamente reemplazarlo por otros caracteres (por ejemplo la á por la a), utilizando
un editor de texto plano.
En este ejemplo se tiene un archivo tipo csv con datos de docentes, llamado
docentes.csv.
2. Array.
De igual modo, en internet encontrarás infinidad de páginas que traten de este tema
como:
https://www.tutlane.com/tutorial/visual-basic/vb-multidimensional-arrays
https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&
id=166:arrays-arreglos-multidimensionales-en-visual-basic-matrices-arrays-de-n-
dimensiones-ejemplos-cu00312a&catid=37&Itemid=61
Lo único que se dirá que el arreglo bidimensional se ha creado con la siguiente
instrucción:
Dim dato(100, 100) As String
Que crea en memoria una matriz de 101 x 101 elementos, todos ellos de tipo
cadena
(String), ya que se cuenta a partir de cero.

3. Bucles
También se está utilizando los bucles while y for, que seguramen te lo han visto en la
unidad didáctica algoritmos y Programación Estructurada II.
Una ayuda la puedes encontrar en:
https://docs.microsoft.com/en-us/dotnet/visual-basic/language-
reference/statements/while-end-while-statement
Sus formatos son los siguientes:

While Not condición


sentencia 1
sentencia 2
sentencia n
End While
En este caso particular se antepone Not indicano lo opuesto a la condición.

For k = 0 To i - 1
sentencia 1
sentencia 2
sentencia n
Next k

En este caso k es el contador que va de cero (0) a un valor contenida en la variable i


descontado uno. El valor de i se a obtenido en un proceso anterior.
Ambas sentencias ejecutan una cantidad de veces las sentencias internas (de color
verde) una cantidad de veces dependiente de la condición o del valor de la variable
i, respectivamente.

4. oCSV
oCSV es el nombre que se le ha dado al objeto que contiene el archivo de texto, en
este caso el archivo con extensión CSV que contiene los datos de los profesores
(docentes). Este objeto es una instancia de la clase Microsoft.VisualBasic.FileIO.
Es importante indicar que el parámetros del método TextFieldParser se refiere a la
ruta o path físico donde se encuentra el archivo CSV y que se recomienda sea la
misma carpeta donde esté la aplicación.
En las siguientes líneas se indica que es un archivo delimitado por comas, es
decir que cada campo de un registro está separado por una coma y que entre un
registro y otro hay un enter (vbCrLf).

oCSV.TextFieldType = FileIO.FieldType.Delimited
oCSV.SetDelimiters(",")

la sentencia While Not oCSV.EndOfData indica que las sentencia a continuación


se ejecutarán hasta que se llegue al final (end) del archivo, hasta leer el último
registro o dato (fin de la data).
La sentencia fila = oCSV.ReadFields() indica que la línea, o registro, leído se
almacenará en la variable a la izquierda de la expresión llamada fila.
La sentencia For Each campo In fila indica que por cada campo que se lea de la
fila leída, se ejecutará la sentencia que está a continuación, dato(i, j) = campo, en
la que el campo leído pasa a un elemento del arreglo bidimensional.
Para controlar posible error en la lectura del archivo CSV se utiliza en comando Try
Catch.
Finalmente, algunos elementos del arreglo son pasados a una variable llamada
salida, en cual separa los valores de cada fila con un enter (vbCrLf) y que es la
variable que al final se imprime con el comando MsgBox.
salida += dato(k, 0) + " " + dato(k, 2) + " " + dato(k, 3) + vbCrLf
La salida se muestra en la figura siguiente:
La pequeña aplicación se muestra a continuación:

También podría gustarte