Você está na página 1de 8

Aplicaciones de consola

Una aplicacin de consola es aquella que se ejecuta dentro de una ventana de lnea de comandos. Este tipo de ventana recibe diferentes denominaciones: Smbolo del sistema, Sesin MS-DOS, Ventana de lnea de comandos, etc., por lo que a lo largo de esta obra nos referiremos a ella de forma genrica como consola. Las aplicaciones de consola son muy tiles cuando necesitamos realizar pruebas que no impliquen el uso del modo grfico del sistema operativo: formularios, controles, imgenes, etc., ya que consumen menos recursos y su ejecucin es ms veloz. En nuestro caso particular, debido a que los prximos temas versarn sobre aspectos del lenguaje, y en ellos no necesitaremos obligatoriamente el uso de formularios, utilizaremos aplicaciones de consola para los ejemplos.

Creacin de un proyecto de tipo aplicacin de consola


Para crear una aplicacin de consola bsica, despus de iniciar el IDE de VS.NET, y seleccionar el men para crear un nuevo proyecto, elegiremos Aplicacin de consola en el panel derecho de la ventana Nuevo proyecto. El resto de opciones de esta ventana se configuran igual que para una aplicacin con formularios Windows. Ver Figura 160.

Programacin con Visual Basic .NET

Grupo EIDOS

Figura 160. Creacin de un proyecto de tipo consola.

Despus de pulsar Aceptar se crear el proyecto que contendr un fichero de cdigo con el nombre MODULE1.VB, en cuyo interior encontraremos un mdulo de cdigo conteniendo un procedimiento Main( ) vaco, por el que comenzar la ejecucin del programa. Ver Cdigo fuente 37.

Module Module1 Sub Main() End Sub End Module Cdigo fuente 37

La clase Console
Esta clase se encuentra dentro del espacio de nombres System, y nos proporciona a travs de sus mtodos, acceso a la consola para mostrar u obtener informacin del usuario. Debido a que los miembros de esta clase se encuentran compartidos (shared), no es necesario crear una instancia previa de la misma en una variable, pudiendo ejecutar directamente sus mtodos sobre el objeto Console. Todo ello se explicar en los siguientes apartados.

182

Grupo EIDOS

11. Aplicaciones de consola

Escritura de informacin
Para mostrar texto utilizaremos el mtodo WriteLine( ) del objeto Console. Este mtodo escribe en la lnea actual de la consola el valor que le pasemos como parmetro, aadiendo automticamente las marcas de retorno de carro y nueva lnea, por lo que la siguiente escritura se realizar en una nueva lnea. Ver Cdigo fuente 38.

Sub Main() Console.WriteLine("Hola mundo desde la consola") Console.WriteLine("Esta es otra lnea nueva") End Sub Cdigo fuente 38

El cdigo fuente anterior tiene no obstante un inconveniente: cuando el lector lo ejecute observar que se muestra la consola con las lneas de texto, pero inmediatamente vuelve a cerrarse, no dejando apenas tiempo para ver su contenido. Esto es debido a que no utilizamos ninguna instruccin que establezca una parada en la ejecucin, que nos permita observar el resultado de lo que hemos escrito en la consola. Para remediar este problema, utilizaremos el mtodo ReadLine( ), que realiza una lectura de los caracteres que vayamos introduciendo en la lnea actual de la consola, e impedir continuar la ejecucin hasta que no pulsemos [INTRO]. Ver Cdigo fuente 39 y el resultado en la Figura 161.

Sub Main() Console.WriteLine("Hola mundo desde la consola") Console.WriteLine("Esta es otra lnea nueva") Console.ReadLine() End Sub Cdigo fuente 39

Figura 161. Escritura en la consola con parada de ejecucin.

Los valores a mostrar con WriteLine( ) pueden ser de distintos tipos de datos, pudiendo insertar tambin lneas en blanco, como vemos en el Cdigo fuente 40.

Sub Main() ' ejemplos con WriteLine()

183

Programacin con Visual Basic .NET

Grupo EIDOS

' escritura de cadenas de caracteres Console.WriteLine("Esta es la primera lnea") Console.WriteLine("Ahora ponemos una lnea vaca") Console.WriteLine() ' lnea vaca

' escritura de nmeros Console.WriteLine("A continuacin escribimos un nmero") Console.WriteLine(5891) Console.WriteLine("Operaciones con nmeros") Console.WriteLine(500 + 150) Console.WriteLine() ' otra lnea vacia

' escritura de valores lgicos Console.WriteLine("Resultado de la expresin lgica: 5 > 2") Console.WriteLine(5 > 2) ' parada y espera respuesta del usuario Console.ReadLine() End Sub Cdigo fuente 40

La Figura 162 muestra la consola con el resultado de la ejecucin del anterior fuente.

Figura 162. Escritura de valores en la consola con WriteLine( ).

Write( ) es otro mtodo que nos permite tambin escribir valores en la consola. Su uso es igual que WriteLine( ), aunque debemos tener en cuenta que Write( ) no separa los valores a mostrar. Veamos un ejemplo en el Cdigo fuente 41.

Sub Main() Console.Write("Hola") Console.Write("A") Console.Write("Todos") Console.Write(3456) End Sub Cdigo fuente 41

184

Grupo EIDOS

11. Aplicaciones de consola

La ejecucin del anterior cdigo mostrara en la consola los valores as: HolaATodos3456. Para evitar que el texto en la consola salga junto, podemos incluir espacios al comienzo y/o al final en las cadenas de caracteres que pasemos como parmetro a Write( ), o bien utilizar este mtodo pasando una cadena vaca. Ver Cdigo fuente 42.

Sub Main() ' ejemplos con Write() Console.Write("Hola ") Console.Write("A") Console.Write(" Todos") Console.Write(" ") Console.Write(3456) Console.ReadLine() End Sub Cdigo fuente 42

Escritura de mltiples valores en la misma lnea


Al utilizar WriteLine( ) o Write( ) ocurrir con frecuencia que en el texto a mostrar debamos incluir valores que se encuentran en variables o expresiones, por lo que tendremos que realizar una combinacin de la cadena de texto principal con los dems elementos para obtener la cadena final que mostraremos al usuario. Esto lo podemos hacer empleando dos tcnicas: Concatenacin. Concatenando a la cadena principal las variables que contienen los valores a mostrar. Ver Cdigo fuente 43.

' concatenar mltiples valores ' declarar variables Dim Nombre As String Dim Numero As Integer ' asignar valor a las variables Nombre = "Luis" Numero = 15 Console.WriteLine("He visto a " & Nombre & " transportando " & Numero & " cajas") Console.ReadLine() Cdigo fuente 43

La Figura 163 muestra el resultado.

185

Programacin con Visual Basic .NET

Grupo EIDOS

Figura 163. Concatenar valores a mostrar en la consola.

Parmetros sustituibles. Pasando como primer parmetro la cadena a mostrar, y aadiendo tantos parmetros adicionales como valores debamos mostrar en la cadena principal. En la cadena principal indicaremos el lugar en donde visualizaremos los parmetros poniendo su nmero entre los smbolos de llave { }. El Cdigo fuente 44 muestra la misma situacin del ejemplo anterior pero utilizando esta tcnica. El resultado final en la consola es el mismo que el del ejemplo anterior.

' combinacin de mliples valores ' declarar variables Dim Nombre As String Dim Numero As Integer ' asignar valor a las variables Nombre = "Luis" Numero = 15 ' el primer parmetro contiene la cadena a mostrar, ' el resto de parmetros son las variables que se visualizarn ' en alguna posicin de la cadena del primer parmetro, ' el contenido de la variable Nombre se situar en el lugar ' indicado por {0}, la variable Numero en la posicin de {1} y ' as sucesivamente Console.WriteLine("He visto a {0} transportando {1} cajas", Nombre, Numero) Console.ReadLine() Cdigo fuente 44

Como habr comprobado el lector, los parmetros sustituibles comienzan a numerarse por cero, no estando obligados a mostrarlos en el mismo orden en el que los hemos situado en la llamada al mtodo. El Cdigo fuente 45 muestra dos ejemplos de sustitucin de parmetros, uno de ellos con el mismo orden en el que se han situado en WriteLine( ), y otro con un orden distinto.

' declaracin de variables Dim Lugar As String Dim Numero As Integer Dim Vehiculo As String ' asignacin de valor a variables Vehiculo = "tren" Lugar = "Alicante" Numero = 300 ' visualizacin de resultados en consola Console.WriteLine("El {0} con destino {1} viaja a mas de {2} kms. por hora", Vehiculo, Lugar, Numero)

186

Grupo EIDOS

11. Aplicaciones de consola

Console.WriteLine() Console.WriteLine("El {2} con destino {0} viaja a mas de {1} kms. por hora", Vehiculo, Lugar, Numero) Console.ReadLine() Cdigo fuente 45

Al ejecutar este fuente, la consola mostrar el aspecto de la Figura 164.

Figura 164. Diversas salidas a la consola con parmetros sustituibles.

Lectura de informacin
Para obtener el texto escrito por el usuario en la lnea actual de la consola y hasta la pulsacin de [INTRO] podemos utilizar el mtodo ReadLine( ) del objeto Console. El Cdigo fuente 46 muestra como volcamos a una variable el contenido de la lnea escrita por el usuario y posteriormente exponemos su contenido, tambin a travs de la consola.

' declaramos una variable para volcar el contenido ' de una lnea de la consola Dim LineaTexto As String Console.WriteLine("Introducir un texto") LineaTexto = Console.ReadLine() ' el texto se pasa a la variable ' ahora mostramos lo que hemos escrito Console.WriteLine() Console.WriteLine("El usuario ha escrito la siguiente lnea:") Console.WriteLine(LineaTexto) ' aqu evitamos cerrar la consola, ' as podemos ver mejor el resultado Console.ReadLine() Cdigo fuente 46

Read( ) es otro mtodo del objeto Console que permite tambin la lectura del dispositivo de entrada de la consola, pero en este caso devuelve el cdigo de una sola tecla pulsada por el usuario. Para ilustrar el uso de este mtodo tenemos el ejemplo del Cdigo fuente 47, en el que despus de pulsar varias teclas, nos introducimos en un bucle que va extrayendo cada uno de sus cdigos, que volvemos a transformar en el carcter correspondiente a la tecla pulsada.
187

Programacin con Visual Basic .NET

Grupo EIDOS

' ejemplo con Read() Dim CodTecla As Integer Dim NombreTecla As Char Console.WriteLine("Pulsar varias teclas") Console.WriteLine() While True ' tomar los cdigos de las teclas uno a uno CodTecla = Console.Read() ' si se ha pulsado intro, salir If CodTecla = 13 Then Exit While End If Console.WriteLine("Cdigo de tecla pulsada: {0}", CodTecla) ' convertir el cdigo al caracter de la tecla NombreTecla = Chr(CodTecla) Console.WriteLine("Tecla pulsada: {0}", NombreTecla) End While Console.ReadLine() Console.WriteLine("Ejemplo terminado, pulse intro") Console.ReadLine() Cdigo fuente 47

188

Você também pode gostar