Vous êtes sur la page 1sur 7

Visual Basic 2008.

Formato de datos en la impresin



El lenguaje imprime los datos en forma natural, sin dejar
espacios entre impresiones consecutivas y mostrando la
mayor cantidad de informacin posible; por ejemplo, la
mxima cantidad de dgitos decimales posibles (o ninguno),
lo que impide la tabulacin de informacin para su
posterior lectura y estudio. El lenguaje ofrece algunas
estrategias para adaptar su forma natural de impresin a
las necesidades del usuario final; por ejemplo, imprimir
todos los nmeros con coma decimal en formato cientfico.

Prof. Manuel R Fernndez R
Publicacin Pendiente Nov. 2010

Visual Basic 2008.


1
2-2010
Funcin Format
La funcin Format permite aplicar un formato o mscara a diferentes tipos de datos. La mscara se
expresa como una cadena de formato. El resultado de esta funcin es un dato tipo String que contiene el
dato mostrado tal y como lo indica la cadena de formato. Por ejemplo:
La llamada: Devuelve:
Format(5,0.00) 5,00
Format(5,00) 05
Format(5,0.00) 5,00
Format(0.5,0.00) 0,50
Format(0.5,0) 1
Format(0.45,00) 00

Como se observa en los ejemplos, la funcin Format requiere de dos argumentos: el dato y la cadena de
formato a aplicar. Los caracteres que se pueden utilizar dentro de la cadena de formato son los
siguientes:
Carcter Descripcin
Ninguna Muestra el nmero sin formato alguno.
(0) Marcador de posicin de dgito. Muestra un dgito o un cero. Si la expresin tiene un dgito en la posicin
donde aparece el cero en la cadena de formato, ste se mostrar as; de lo contrario, aparecer un cero en esa
posicin.
Si el nmero tiene menos dgitos que ceros (a cualquier lado del separador decimal) en la expresin de
formato, se mostrarn ceros iniciales o finales. Si el nmero tiene ms dgitos a la derecha del separador
decimal que ceros en la expresin de formato, se redondear el nmero a tantos decimales como ceros haya.
Si el nmero tiene ms dgitos a la derecha del separador decimal que ceros en la expresin de formato, se
redondear el nmero a tantos decimales como ceros haya.
(#) Marcador de posicin de dgito. Muestra un dgito o nada. Si la expresin tiene un dgito en la posicin donde
aparece el carcter # en la cadena de formato, se muestra; de lo contrario, no aparece nada en esa posicin.
Este smbolo funciona como el marcador de posicin de dgito 0, salvo que los ceros iniciales y finales no se
mostrarn si el nmero contiene menos dgitos que caracteres # a cualquiera de los lados del separador
decimal en la expresin de formato.
(.) Marcador de posicin decimal. El marcador de posicin decimal determina cuntos dgitos se mostrarn a la
izquierda y derecha del separador decimal. Si la expresin de formato slo contiene caracteres # a la izquierda
de este smbolo, los nmeros inferiores a 1 empezarn con un separador decimal. Par mostrar un cero inicial
con nmeros fraccionarios, use el cero como el primer marcador de posicin digital a la izquierda del
separador decimal. Deber usar el punto como marcador decimal en sus formatos, incluso aunque su
configuracin regional utilice la coma como separador decimal. La cadena con formato se mostrar con el
formato correcto para la configuracin regional correspondiente.
Visual Basic 2008.


2
2-2010
Carcter Descripcin
(%) Marcador de posicin de porcentaje. Multiplica la expresin por 100. El carcter de porcentaje (%) se inserta
en la misma posicin en la que aparece en la cadena de formato.
(,) Separador de miles. El separador de miles separa las unidades de millar de las centenas con un nmero que
presente cuatro o ms dgitos a la izquierda del separador decimal. Se especificar un uso estndar del
separador de miles si el formato contiene un separador de miles rodeado de marcadores de posicin de dgito
(0 o #).
Un separador de miles situado inmediatamente a la izquierda del separador decimal (se especificar si se trata
de un decimal o no) o como el carcter ms a la derecha de la cadena significa "reducir el nmero dividindolo
por 1000 y redondendolo en caso necesario". Los nmeros menores que 1,000 pero mayores o iguales que
500 se muestran como 1; los nmeros menores que 500 se muestran como 0. Dos separadores de miles
adyacentes en esta posicin se reducen por un factor de 1 milln, ms otro factor adicional de 1000 por cada
separador adicional.
En el caso de los separadores mltiples en cualquier posicin que no sea inmediatamente a la izquierda del
separador decimal o la posicin ms a la derecha de la cadena, se interpretar que simplemente especifican el
uso de un separador de miles. El uso del punto o la coma como separador de miles depende de la
configuracin regional en cada caso. El mismo carcter utilizado como separador de miles en virtud del
formato de salida depender del formato de nmero reconocido por su sistema. Por tanto, deber usar la
coma como marcador de miles en sus formatos, incluso aunque su configuracin regional utilice el punto como
marcador de miles. La cadena con formato se mostrar con el formato correcto para la configuracin regional
correspondiente.
Por ejemplo, considere las tres cadenas de formato siguientes:
"#,0.", que utiliza el separador de miles para dar formato al nmero 100 millones como la cadena
"100,000,000".
"#0,.", que ajusta la escala en un factor de mil para dar formato al nmero 100 millones como la
cadena "100000".
"#,0,.", que utiliza el separador de miles y el ajuste de la escala en un factor de mil para dar formato
al nmero 100 millones como la cadena "100,000".
(E-E+e-
e+)
Formato cientfico. Si la expresin de formato contiene al menos un marcador de posicin de dgito (0 o #) a la
izquierda de E-, E+, e- o e+, el nmero se muestra en formato cientfico, y se inserta E o e entre el nmero y su
exponente. El nmero de marcadores de posicin digitales a la izquierda determina el nmero de dgitos en el
exponente. Use E- o e- para colocar un signo menos junto a los exponentes negativos. Utilice E+ o e+ para
colocar un signo menos junto a los exponentes negativos y un signo ms junto a los positivos. Tambin deber
incluir marcadores de posicin digitales a la derecha de este smbolo para obtener un formato correcto.
-+$ ( ) Caracteres literales. Estos caracteres se mostrarn exactamente como se escriben en la cadena de formato.
Para mostrar un carcter distinto de los listados, se hace preceder de una barra invertida (\) o se escribe entre
comillas (" ").
Fuente: MSDN Microsoft Noviembre 2007

Visual Basic 2008.


3
2-2010

Ejemplos:
La siguiente tabla contiene algunas muestras de expresiones de formato correspondientes a nmeros. En
estos ejemplos se presupone que la configuracin regional del sistema es Ingls (Estados Unidos). La
primera columna contiene las cadenas de formato correspondientes al argumento Style de la funcin
Format; las otras columnas contienen el formato de salida resultante si los datos con formato contienen
el valor asignado en los encabezados de columna.
Cadena de Formato 5 con formato -5 con formato 0.5 con formato
0 5 -5 1
00 05 -05 01
0.00 5,00 -5,00 0,50
#,##0 5 -5 1
0% 500% -500% 50%
0.00% 500,00% -500,00% 50,00%
0.00E+00 5,00E+00 -5,00E+00 5,00E-01
0.00E-00 5,00E00 -5,00E00 5,00E-01
Fuente: MSDN Microsoft Noviembre 2007
La funcin Format posee Formatos numricos predefinidos que de una forma simple de dar un
formato o mscara a datos numricos.
La tabla siguiente muestra los nombres de formato numrico predefinidos. stos pueden usarse por nombre
como argumento de estilo para la funcin Format:
Nombre de formato Descripcin
General Number, G
o g
Muestra el nmero sin separadores de miles.
Currency, C o c Muestra el nmero con separadores de miles, en su caso; tambin muestra dos dgitos a la derecha del
separador de decimales. El formato de salida depender de la configuracin regional.
Fixed, F o f Muestra al menos un dgito a la izquierda y dos a la derecha del separador de decimales.
Standard, N o n Muestra el nmero con separador de miles, al menos un dgito a la izquierda y dos a la derecha del
separador de decimales.
Percent Muestra el nmero multiplicado por 100 con un signo de porcentaje (%) a la derecha; siempre muestra
dos dgitos a la derecha del separador de decimales.
P o bien p Muestra el nmero con separador de miles multiplicado por 100 con un signo de porcentaje (%) a la
derecha y separado por un solo espacio; siempre muestra dos dgitos a la derecha del separador de
decimales.
Visual Basic 2008.


4
2-2010
Nombre de formato Descripcin
Scientific Utiliza notacin cientfica estndar y proporciona dos dgitos significativos.
E o bien e Utiliza notacin cientfica estndar y proporciona seis dgitos significativos.
Fuente: MSDN Microsoft Noviembre 2007
Por ejemplo:
Cadena de Formato 5 con formato -5 con formato 0.5 con formato
G 5 -5 0,5
Currency Bs 5,00 Bs -5,00 Bs 0,50
Fixed 5,00 -5,00 0,50
Standard 5,00 -5,00 0,50
Percent 500,00% -500,00% 50,00%
Scientific 5,00E+00 -5,00E+00 5,00E-01
E 5,000000E+000 -5,000000E+000 5,000000E-001

Cuando se utiliza la abreviacin de una letra, adems, se puede indicar cuantos decimales se desean. Por
ejemplo, F4 indica que se desea el formato predefino Fixed pero con 4 decimales en lugar de 2.
Cadena de Formato 5 con formato -5 con formato 0.5 con formato
G 5 -5 0,5
C3 Bs 5,000 Bs -5,000 Bs 0,500
F1 5,0 -5,0 0,5
F0 5 -5 1
P4 500,0000 % -500,0000 % 50,0000 %
P0 500 % -500 % 50 %
E3 5,000E+000 -5,000E+000 5,000E-001
E0 5E+000 -5E+000 5E-001

Si se indica cero (0) decimales, se omiten tanto la coma decimal como los decimales.
Funcin String.PadLeft
La funcin String.PadLeft es una funcin asociada a cualquier valor literal o variable tipo string y su
invocacin se realiza luego del uso de dicho valor literal o variable. Su objetivo es alinear a la derecha de
los caracteres, insertando a la izquierda espacios en blanco hasta alcanzar la longitud total especificada.
Por ejemplo si al valor literal Hola Mundo se le aplica la funcin asociada, con una longitud total de 20,
es decir, Hola Mundo.PadLeft(20), el valor literal se transforma en el valor literal Hola Mundo,
con un total de 10 espacios delante de la frase Hola Mundo, que contiene 10 caracteres.
Visual Basic 2008.


5
2-2010

De esta manera, el programador podr tabular datos a quienes se les haya aplicado previamente la
funcin Format, o directamente a datos tipo String. Por ejemplo:
Dim A, B, C As Single

A = 1.4045
B = 76.07209
C = 81.45
Console.Write(Format(A, "F").PadLeft(10))
Console.Write(Format(B, "F3").PadLeft(11))
Console.Write(Format(C, "C").PadLeft(13))
Console.WriteLine()
Console.Write(Format(C, "F").PadLeft(10))
Console.Write(Format(A, "F3").PadLeft(11))
Console.Write(Format(B, "C").PadLeft(13))
Console.WriteLine()


Dara como resultado las siguientes lneas:
1,40 76,072 Bs 81,45
81,45 1,405 Bs 76,07
De esta manera los datos quedaran alineados segn la coma decimal y debidamente espaciados.
Funcin String.PadRight
La funcin String.PadRight funciona de manera similar a String.PadLeft solo que alinea a la izquierda de
los caracteres, insertando a la derecha espacios en blanco hasta alcanzar la longitud total especificada.
Por ejemplo Hola Mundo.PadRight(20), el valor literal cambia al valor literal Hola Mundo , con
un total de 10 espacios despus de la frase Hola Mundo, que contiene 10 caracteres.
Esta funcin asociada a valores string se utiliza cuando se requieren imprimir valores tipo string como
nombres de personas. Por ejemplo, las siguientes instrucciones:
Dim A, B, C As Single
Dim Nombre1, Nombre2 As String

Nombre1 = "Manuel" : Nombre2 = "Estanilao"
A = 1.4045 : B = 76.07209 : C = 81.45
Console.Write(Nombre1.PadRight(13))
Console.Write(Format(A, "F").PadLeft(8))
Console.Write(Format(B, "F3").PadLeft(9))
Console.Write(Format(C, "C").PadLeft(11))
Console.WriteLine()
Console.Write(Nombre2.PadRight(13))
Console.Write(Format(C, "F").PadLeft(8))
Console.Write(Format(A, "F3").PadLeft(9))
Console.Write(Format(B, "C").PadLeft(11))
Console.WriteLine()
Visual Basic 2008.


6
2-2010
Dara como resultado las siguientes lneas:
Manuel 1,40 76,072 Bs 81,45
Estanilao 81,45 1,405 Bs 76,07
Por supuesto, si un nombre supera los 13 caracteres, la lnea quedar fuera de la tabulacin. Es por esto
que el programador deber cuidar el diseo de la tabla correctamente.
Por otra lado, las variables tipo char no tienen acceso a estas funciones asociadas a un string; si se desea
utilizarlas, primero es necesario utilizar la funcin asociada a ToString para transformar el dato tipo char
a tipo String y luego aplicarle las funciones PadLeft PadRight. Las siguientes instrucciones:
Dim A, B, C As Single
Dim Nombre1, Nombre2 As String
Dim Sexo As Char

Nombre1 = "Manuel"
Nombre2 = "Estanilao"
Sexo = "M"
A = 1.4045
B = 76.07209
C = 81.45
Console.Write(Nombre1.PadRight(13))
Console.Write(Sexo.ToString.PadRight(2))
Console.Write(Format(A, "F").PadLeft(8))
Console.Write(Format(B, "F3").PadLeft(9))
Console.Write(Format(C, "C").PadLeft(11))
Console.WriteLine()
Console.Write(Nombre2.PadRight(13))
Console.Write(Sexo.ToString.PadRight(2))
Console.Write(Format(C, "F").PadLeft(8))
Console.Write(Format(A, "F3").PadLeft(9))
Console.Write(Format(B, "C").PadLeft(11))
Console.WriteLine()
Dara como resultado las siguientes lneas:
Manuel M 1,40 76,072 Bs 81,45
Estanilao M 81,45 1,405 Bs 76,07
La funcin Format y las funciones asociadas a string pueden utilizarse tambin para imprimir datos hacia
archivos de datos tipo texto de la misma manera como se ilustr para la consola.

Vous aimerez peut-être aussi