Inicio » Informática profesional. » Programación » Curso de Visual Basic.NET » 2.4 Escribir varios valores en una sola línea

Curso de Visual Basic.NET

2.4 Escribir varios valores en una sola línea

Si queremos concatenar varios textos en una línea los podemos concatenar con el símbolo "&", tanto para variables como para textos. Por ejemplo:

'Tenemos dos variables

Nombre="Pepe"

Numero=27
Console.WriteLine ("Hola me llamo: " & nombre & " y tengo " & numero & " años.")

console.Readline

Así que irá concatenando la cadena con "Hola me llamo:" con nombre que es una variable, así que el resultado final será:

Ahora nos queda ver cómo podemos poner parámetros sustituibles.

Hemos visto como con WriteLine podemos indicar, entre otras cosas, una cadena que se mostrará en la ventana de consola, dentro de esa cadena podemos usar unos indicadores o marcadores en los que se mostrarán los parámetros indicados en esos dos métodos de la clase Console.

Los marcadores se indican con un número encerrado entre llaves, los números indicarán el número u orden del parámetro que siga a la cadena en el que está ese marcador. El primer parámetro estará representado por el cero y así sucesivamente.

Por ejemplo, para mostrar los valores de dos parámetros usaremos algo como esto:

Console.WriteLine("{0} {1}", i, j)

En este ejemplo, el {0} se sustituirá por el valor de la variable i, y el {1} por el valor de la variable j.

Que es mucho mas cómodo que ir concatenando cadenas de caracteres y variables... fíjate en la diferencia:

Console.WriteLine ("Hola me llamo: " & nombre & " y tengo " & numero & " años.")
Console.WriteLine ("Hola me llamo: {0} y tengo  {1} años.", nombre, numero)

El segundo caso dice que se van a escribir dos variables en la posiciones de {0} y {1}. Y esas variables están a continuación en "nombre, numero" Cuando se indican marcadores, estos deben coincidir con el número de parámetros, es decir, si usamos el marcador {3}, debería existir ese parámetro, en caso de que haya menos de 4 parámetros (de 0 a 3), se producirá una excepción (un error).

Nota Los parámetros pueden ser numéricos, de cadena, e incluso objetos basados en una clase. En todos los casos se usará la "versión" de tipo cadena de esos parámetros, de esto sabrás un poco más cuando toquemos el tema de las clases... sólo te lo comento para que no te extrañe ver algo "raro" si haces tus propias pruebas

Con uno de estos marcadores, además de indicar el número de parámetro que se usará, podemos indicar la forma en que se mostrará: cuantos caracteres se mostrarán y si se formatearán a la derecha o la izquierda; también se pueden indicar otros valores de formato.

La forma de usar los marcadores o las especificaciones de formato será la siguiente:

    { N [, M ][: Formato ]}

  • N será el número del parámetro, empezando por cero.
  • M será el ancho usado para mostrar el parámetro, el cual se rellenará con espacios. Si M es negativo, se justificará a la izquierda, y si es positivo, se justificará a la derecha.
  • Formato será una cadena que indicará un formato extra a usar con ese parámetro.

 

Veamos algunos ejemplos para aclarar todo esto:

Console.WriteLine("---------- ----------")

Console.WriteLine("{0,10} {1,-10} {2}", 10, 15, 23)

'

Console.WriteLine("---------- ----------")

Console.WriteLine("{0,10:#,###.00} {1,10}", 10.476, 15.355)

El resultado de este ejemplo sería este:

En el primer caso, el primer número se muestra con 10 posiciones, justificado a la derecha, el segundo se justifica a la izquierda.

En el segundo caso, el número 10.476 se justifica también con 10 posiciones a la derecha, pero el número se muestra con un formato numérico en el que sólo se muestran dos decimales, por eso se ha redondeado el resultado, sin embargo en el segundo valor se muestran todos los decimales, ya que no se ha especificado ningún formato especial.

Estas especificaciones de formato son aplicable a números, pero también lo es a cadenas de caracteres y fechas. Veamos algunos ejemplos más:

Console.WriteLine("Hoy es: {0:G}", DateTime.Now)

Console.WriteLine("Hoy es: {0:dd/MM/yy}", DateTime.Now)

Console.WriteLine("Hoy es: {0:ddd, dd/MMM/yyyy}", DateTime.Now)

El resultado de estas líneas será el siguiente (al menos usando la configuración regional que tengo en mi equipo, y de las funciones no te preocupes ya las veremos mas adelante...):

Como puedes comprobar, en esta ocasión no se indica cuantos caracteres se usan para mostrar los datos, (ya que sólo se indica el parámetro y el formato a usar), pero en el caso de que se especifiquen, si la cantidad de caracteres a mostrar es mayor que los indicados, no se truncará la salida, es decir, no se quitarán los caracteres que sobren. Esto lo podemos ver en el siguiente ejemplo:

Dim s As String = "Esta es una cadena larga de más de 20 caracteres"

Dim s1 As String = "Cadena más corta"

'

Console.WriteLine("--------------------")

Console.WriteLine("{0,20}", s)

Console.WriteLine("{0,20}", s1)

Console.WriteLine("--------------------")

La salida de este código es la siguiente:

Tal como podemos comprobar, la primera cadena excede los 20 caracteres (los indicados con las rayas), por tanto se muestra todo el contenido, sin embargo la segunda cadena mostrada si se posiciona correctamente con espacios a la izquierda hasta completar los 20 especificados.

En formato se pueden usar muchos caracteres diferentes según el tipo de datos a "formatear", la lista sería bastante larga y de momento nos vale con lo que hemos visto aquí.


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Visual Basic.NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


2.5 Leer valores

Para leer valores por teclado utilizaremos como hemos visto antes el método ReadLine. Si queremos asignar el valor leído a una variable lo indicaremos en la asignación a la variable:

'Declaro una variable de tipo cadena de caracteres

 dim cadena as string
cadena=Console.Readline()

 

 


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Visual Basic.NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Si desea obtener un acceso sin restricciones a los contenidos del curso de Visual Basic.NET y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.