Académique Documents
Professionnel Documents
Culture Documents
Microsoft Partner
El contenido de este laboratorio tiene todos los derechos reservados, por lo tanto no se
puede reproducir, transcribir, almacenar a un sistema de recuperación o de alteración,
asimismo la traducción a otro idioma de ninguna forma o por ningún medio mecánico,
manual, electrónico, magnético, óptico o de otro modo.
6 WINDOWS FORMS
SaveFileDialog.
El componente SaveFileDialog permite a los usuarios examinar el sistema de archivos y seleccionar
los archivos que deseen guardar. El cuadro de diálogo devuelve la ruta de acceso y el nombre del
archivo que seleccionó el usuario en el cuadro de diálogo. Sin embargo, debe escribir el código para
escribir realmente los archivos en el disco.
A nivel ejecución:
Y a nivel diseño:
Desde el cuadro de herramientas en Diálogos seleccionamos el control SaveFileDialog y lo soltamos en el
formulario, luego escribiríamos lo siguiente:
Se debe utilizar el método OpenFile del componente SaveFileDialog para guardar el archivo seleccionado con
la propiedad FileName. Este método le proporciona un objeto Stream en el que se puede escribir. El
siguiente ejemplo utiliza la enumeración para los tipos de resultados en DialogResult para obtener el
nombre del archivo y el método OpenFile para guardarlo.
OpenFileDialog.
El componente OpenFileDialog de formularios Windows Forms es un cuadro de diálogo
preconfigurado. Es el mismo cuadro de diálogo Abrir archivo que expone el sistema operativo de
Windows. Se hereda de la clase CommonDialog.
A nivel ejecución:
Y a nivel diseño:
Desde el cuadro de herramientas en Diálogos seleccionamos el control OpenFileDialog y lo soltamos en el
formulario, luego escribiríamos lo siguiente:
Utilice este componente dentro de la aplicación para Windows como una solución sencilla para seleccionar
archivos, en lugar de configurar un cuadro de diálogo propio. Al basarse en cuadros de diálogo estándar de
Windows, creará aplicaciones cuya funcionalidad básica resultará inmediatamente familiar para los usuarios.
Tenga en cuenta, no obstante, que cuando utilice el componente OpenFileDialog deberá escribir su propia
lógica de apertura de archivos.
Los Stream´s son clases especializadas para el tratamiento de archivos, de los cuales maneja en dos
direcciones tanto para la escritura y lectura.
Si la transferencia de información se hace desde una fuente externa, se realiza lectura del
Stream.
Si se desea hacer transferencia hacia una fuente externa para su uso, se realizara escritura de
un Stream.
Se denomina fuente externa, por que no necesariamente se puede trabajar sobe un archivo de texto simple,
también podemos ampliar para el tratamiento de datos de una red utilizando protocolos para el envió o
repleción de un computador, lectura o escritura de fuentes de consola, envió de datos a impresión, trabajo
de información en memoria, entre otros.
Clase FileStream:
El Net Framework proporciona unas clases simples para el manejo de archivos tanto para la lectura
y escritura de archivos, ubicadas en el espacio de nombre System.IO.
El propósito principal de esta clase es el trabajo sobre datos de cualquier archivo de tipo binario,
pero además se puede utilizar para acceder a cualquier tipo de archivo, inclusive con contenido de texto.
El uso de la clase StreamReader es muy simple para el trabajo de archivos, al ser uso de esta clase o
instanciarla solo hay que indicarle la ruta del archivo que queremos procesar.
Solo tenemos que tener en cuenta que existen diferentes formatos o codificaciones de caracteres que no se
encuentran en el tradicional formato ASCII, para esto se puede indicar que tipo de codificación se desea
usar para la lectura del archivo.
Las codificaciones con las que se encuentran son las siguientes: ASCII, Unicode, UTF7, UTF8,
BigEndianUnicode.
Al no indicarse la codificación, no será necesario recurrir a los tipos de codificaciones indicados, ya que por
default trabajara con codificación ASCII. Pero se podría presentar el siguiente error:
Para evitar esto, lo que debemos hacer utilizar el mismo Encoding correspondiente a la página actual de
códigos ANSI del sistema.
ReadLine:
Realiza la lectura de toda una línea completa de un archivo de texto, hasta el cambio de línea mas
próximo o siguiente, este método omite el carácter de salto y retorno de línea.
linea = sReader.ReadLine()
ReadToEnd:
Al realizar este método, lo que hará será leer toda la información que te proporciona el archivo,
desde la última lectura realizada con ReadLine o Read hasta el final del archivo.
linea = sReader.ReadToEnd()
Read:
Si usamos este método solo será para leer carácter por carácter encontrado, incluido los espacios en
blanco, retorno de carro o salto de línea, y lo que devuelve será su equivalente en código ASCII,
este método al procesar y no encontrar nada devolverá como valor “-1”.
Close:
Al realizar la instancia se produce el levantar el archivo en memoria para uso exclusivo de lectura,
luego de realizar el proceso se debe de usar el método Close para liberar el archivo y su posible uso.
sReader.Close()
El uso de la clase StreamWriter al igual que la clase StreamReader funciona de la misma manera a la hora
de la instancia, pero el propósito de esta clase es solo para escritura de archivo u otro Stream. Al usar esta
clase se debe tener en cuenta lo siguiente:
Para indicarle que queremos, que al escribir en un archivo lo haga al fina del la ultima linea, tenemos que
activar la forma Append.
WriteLine:
Se utiliza para la escritura de líneas en un archivo de texto, es decir por cada invocación a este método se
escribirá una línea debajo de la otra.
Write:
Usado básicamente para escribir carácter por carácter en forma consecutiva en una sola línea.
Close
Así como en la clase anterior sirve para liberar el archivo trabajado de memoria.
Laboratorio 07
I.- Revisar el archivo que se entregara al alumno, el cual consiste de la tabla Customers, de las cuales la
estructura del archivo consta de lo siguientes campos con sus respectivas longitudes:
Al realizar la lectura de este archivo debemos tener en cuenta lo siguiente, que por cada campo mostrado a
un espacio de separación, es decir si estamos leyendo la línea:
La grafica nos mostraría como estaría ordenada, para hacer referencia a un campo especifico:
-- Longitud: 1 -- -- Longitud: 1 --
Y a nivel código si solo queremos leer el campo CompanyName, debemos hacer lo siguiente:
De igual forma para el campo Address, tendríamos que hacer la siguiente contabilización:
Do
linea = sReader.ReadLine()
If linea Is Nothing Then
Exit Do
End If
If linea <> "" Then
sCompania = linea.Substring(11, 40)
sDireccion = linea.Substring(114, 60)
Me.lstCompania.Items.Add(sCompania)
Me.lstDireccion.Items.Add(sDireccion)
End If
Loop
sReader.Close()
sDireccion = "Dirección"
slinea += sDireccion + Space(60 - sDireccion.Length + 1)
sWriter.WriteLine(slinea)
La clase Graphics proporciona métodos para dibujar objetos en la interfaz de la pantalla, se puede obtener
la clase Graphics llamando al método [Control].CreateGraphics en un objeto que herede de
System.Windows.Forms.Control, ejemplo:
Esta es la clase que realmente dibuja líneas, curvas, figuras, imágenes y texto, para esto necesita un lienzo
donde poder hacerlo, el cual se crea de la siguiente manera:
X
(0,0)
(x1,y1)
(x2,y2)
Las clases y estructuras más importantes del namespace System.Drawing, las podemos resumir en:
Bitmap
Encapsula un Bitmap GDI+, usado para trabajar con imágenes, representa una forma de asignar un
grafico en un PictureBox.
Font
A veces cuando queremos cambiar el tipo de fuente a nivel ejecución, hemos tenido problema en
definir como hacer esto, para esto se crea una clase que te identifique que fuente deseas cambiar.
Pen
Para dibujar líneas y curvas, arcos y otras figuras etc.
DrawLine
Dibuja una línea que conecta los dos puntos especificados por los pares de coordenadas.
DrawRectangle
Dibuja un rectángulo especificado por un par de coordenadas, un valor de ancho y un valor de alto.
DrawEllipse
Dibuja una elipse definida por un rectángulo delimitador especificado por un par de coordenadas, un
valor de alto y un valor de ancho.
DrawPolygon
Dibuja un polígono definido por una matriz de estructuras Point.
DrawCurve
Sobrecargado. Dibuja una curva cardinal a través de una matriz especificada de puntos de la clase
Point.
FillEllipse
Rellena el interior de una elipse definida por un rectángulo de delimitación especificado por un par
de coordenadas, un valor de alto y un valor de ancho.
Me.CreateGraphics.FillEllipse(Brushes.Blue, Rtg)
FillRectangle
Rellena el interior de un rectángulo especificado por un par de coordenadas, un valor de ancho y un
valor de alto.
FillPolygon
Rellena el interior de un polígono definido por una matriz de puntos, este método requiere indicarle
el color de relleno y el polígono transformado en una matriz de puntos.
TranslateTransform
ScaleTransform
RotateTransform
La clase GraphicsPath, del espacio de nombres System.Drawing.Drawing2D, tiene objetos que representan
figuras (líneas y curvas conectadas). Las aplicaciones usan estas secuencias de datos con líneas y curvas
(path) para dibujar los bordes de las figuras, rellenar el interior de las figuras y crear zonas de recorte. El
motor gráfico mantiene las coordenadas de las figuras geométricas en objetos path. Los objetos path
pueden estar formados a su vez por otras figuras.
Las aplicaciones usan trazados para dibujar los contornos de formas, rellenar el interior de formas y crear
áreas de recorte. El motor de gráficos mantiene las coordenadas de las formas geométricas de un trazado
en un espacio de coordenadas universales.
Un trazado puede estar formado por un número indeterminado de figuras (subtrazados). Cada figura está
formada por una secuencia de líneas y curvas conectadas o por una forma geométrica primitiva. El punto
inicial de una figura es el primer punto de la secuencia de líneas y curvas conectadas. El extremo es el
último punto de la secuencia. Los puntos iniciales y finales de una forma geométrica primitiva se definen
mediante la especificación primitiva.
Laboratorio 08:
I.- Para esto primero crearemos un formulario con el nombre frmEstadisticas, el cual debe tener el
siguiente diseño:
PictureBox
LinX.Width = 4
LinX.EndCap = Drawing2D.LineCap.Triangle