35
VB II, UNIDAD II MANEJO DE ARCHIVOS LSC María Alejandra Alva Sánchez Mtra. Verónica Perla Romero Fdz.

Vb II, Unidad 2, Manejo De Archivos

  • Upload
    utp-ta

  • View
    8.323

  • Download
    13

Embed Size (px)

Citation preview

Page 1: Vb II, Unidad 2, Manejo De Archivos

VB II, UNIDAD II MANEJO DE ARCHIVOS

LSC María Alejandra Alva SánchezMtra. Verónica Perla Romero Fdz.

Page 2: Vb II, Unidad 2, Manejo De Archivos

2.1Archivos de datos Un archivo es un conjunto de datos

estructurados en unidades lógicas con características comunes.

En VB tiene la extensión .DAT Las acciones que se pueden realizar son:

abrir, agregar información, dar de baja, cambiar, modificar, leer y cerrar.

Existen tres tipos que son: aleatorios, secuenciales y binarios.

Page 3: Vb II, Unidad 2, Manejo De Archivos

Guardan información en forma consecutiva separados por un carácter especial. Permiten ahorrar espacio en disco. No se pueden guardar datos intermedios y para leer un dato es necesario leer todos los anteriores hasta encontrarlo.

2.2 Archivos Secuenciales

Page 4: Vb II, Unidad 2, Manejo De Archivos

Explicación Recuerda que los archivos secuenciales guardan la información

en forma consecutiva.

Mientras que en los archivos aleatorios se guardan todos los registros de igual tamaño, se utilicen o no todos los lugares.

Datos guardados

Monterrey, Guadalajara, México, Veracruz, Monclova, Saltillo,

Caracteres utilizados

9 y 1 11 y 1 6 y 1 8 y 1 8 y 1 8 y 1

Total de caracteres:56

MonterreyGuadalajara

MéxicoVeracruzMonclova

Saltillo

10 caracteres para cada Registro hacen un total de

60 caracteres

Page 5: Vb II, Unidad 2, Manejo De Archivos

2.3 Archivos aleatorios Guardan todos los registros de igual

tamaño se utilicen o no todos los lugares, se pueden hacer lecturas y guardar datos de forma directa. Se pueden producir lugares vacíos y si los datos son más grandes que lo previsto se pueden guardar incompletos.

Page 6: Vb II, Unidad 2, Manejo De Archivos

Actividades Realiza un mapa conceptual sobre

archivos aleatorios.

Realiza un mapa conceptual sobre archivos secuenciales.

Page 7: Vb II, Unidad 2, Manejo De Archivos

Actividades: Indica si se trata de archivo secuencial (AS) o aleatorio (AA).

Guardan información en forma consecutiva separados por un carácter especial.

Se pueden hacer lecturas y guardar datos en forma directa.

Se pueden producir lugares vacíos y si los datos son más grandes se guardan incompletos.

No se pueden guardar datos intermedios. Para leer un dato es necesario leer todos los anteriores

hasta encontrarlo. Guardan todos los registros de igual tamaño se utilicen o

no todos lo lugares. Permiten ahorrar espacio en disco.

Page 8: Vb II, Unidad 2, Manejo De Archivos

Instrucciones en el manejo de archivos Open.-Abre un archivo de datos que ya existe o

bien para crearlo tanto de forma secuencial como aleatoria.

Número de canal.-LÍNEA DE COMUNICACIÓN entre la computadora y el disco.

Modo.-Palabra clave que indica la forma o manera en que vamos a acceder a los datos del archivo.

Append.-ABRE (si existe) o CREA (si no existe) un archivo de datos PARA ESCRIBIR INFORMACIÓN AL FINAL DEL ARCHIVO.

Page 9: Vb II, Unidad 2, Manejo De Archivos

Instrucciones en el manejo de archivos Input.- Abre un archivo para LEER DATOS en

forma secuencial y en orden, a partir del primer dato. ¡Ojo! Si no existe se genera un error al tratar de abrirlo.

Output.-Abre un archivo POR PRIMER VEZ para guardar datos en forma secuencial y siempre lo hace desde el inicio del archivo. ¡Ojo! SI EXISTE EL ARCHIVO SOBRESCRIBE EN ÉL.

Random.- Abre un archivo para acceso aleatorio el cual permite LEER Y ESCRIBIR EN ÉL EN CUALQUIER ORDEN. ¡Recuerda definir el tamaño de los registros!, mediante la instrucción Len, n representa el número de caracteres.

Page 10: Vb II, Unidad 2, Manejo De Archivos

FreeFile.- Permite dejar a VB ASIGNAR EL CANAL DEL ARCHIVO DESOCUPADO.

Close.- CIERRA el archivo para que los datos guardados en él no se borren o alteren.

EOF.- Fin del archivo. EOF (número de canal) Se utiliza regularmente para leer información de la instrucción INPUT acompañado de un ciclo.

Page 11: Vb II, Unidad 2, Manejo De Archivos

On Error Goto <etiqueta>.- Rutina que nos permite MANEJAR

LOS ERRORES que se pudieran producir EN TIEMPO DE EJECUCIÓN. Cuando se comete el error al ejecutar algún programa, la ejecución no se interrumpe y el control pasa alas instrucciones que se encuentran en la etiqueta, la cual deberá terminar con la instrucción Resume.En el ejemplo si todo sale bien con Exit Sub se evita entrar en la caja de dialogo de salida MsgBox. Si en tiempo de ejecución se produce un error nos enviará a la etiqueta Tipo Error: donde reportaremos el error gracias a la variable reservada Err que nos indicará el número de error que se cometió.

Type…EndType.- Especifica CUÁNTOS CAMPOS TIENE CADA REGISTRO, cuáles son los nombres de los campos, que tipos de datos se guardará en él y de qué longitud es cada uno de ellos. ¡RECUERDA QUE DEBERÁ DECLARARSE EN UN MÓDULO!

Page 12: Vb II, Unidad 2, Manejo De Archivos

Instrucciones en los Archivos Secuencial y AleatorioINSTRUCCIÓN SECUENCIAL ALEATORIO

Open Open “A:ARCHIVO.DAT”, for modo as numero de canal

Open “A:ARCHIVO.DAT”, for modo as numero de canal Len= m

Número de canal Varía entre 1 y 511.

Modo Los tipos de modo son: append, input, output; es decir para añadir, leer, guardar.

For Random, get y put indican para leer o para guardar datos.

Append NT = FreeFileOpen “C:HOLA.DAT” for append as #

NT Write #NT, “cadenas”, “números”Close #NT

No existe una instrucción directa por ello es necesario determinar el número de registros +1. Por ejemplo W= LOF(1)/42

La posición actual será Reg=W+1

Input Open “C:HOLA.DAT” for input as #5Input #5, variable de lectura

Output NT = FreeFileOpen “C:HOLA.DAT” for output as #

NT Write #NT, “cadenas”, “números”Close #NT

Random Open “A:ARCHIVO.DAT” for Random as #1 Len=n

Page 13: Vb II, Unidad 2, Manejo De Archivos

Instrucciones en los Archivos Secuencial y Aleatorio

INSTRUCCIÓN SECUENCIAL ALEATORIO

FreeFile VariableNumCanal= FreeFile

Close Close # canal

EOF Dim DatSalida as stringOpen “C:HOLA.DAT” for input as #5 Do While Not EOF (5) Input #5, DatSalida PicSalida.Print DatSalida LoopClose # 5

On Error Goto <etiqueta>

Dim DatSalida as stringOn Error Goto Tipo ErrorOpen “A:ARCHIVO.DAT” for input as

#5 Do While Not EOF (5) Input #5, DatSalida LoopClose #5Exit SubTipoError: MsgBox “Se produje el error: ” &

ErrResume Next

Page 14: Vb II, Unidad 2, Manejo De Archivos

Instrucciones en los Archivos Secuencial y Aleatorio

INSTRUCCIÓN SECUENCIAL ALEATORIO

Type…EndType Type Expediente Nombre as String * 30 Apellido as String * 30 Edad as integerEnd Type

Put Dim RegExp as ExpedienteOpen “A:ARCHIVO.DAT” for Random as # 3 Len

= 62 RegExp.Nombre=”Vero” RegExp.Apellido=”Romero” RegExp.Edad= 33 Put, 3, 1, RegExp.NombreClose # 3

Get Open “A:ARCHIVO.DAT” for Random as # 3 Len 62

W= LOF (3) / 42 For I=1 to W Get 3, I, RegExp Picsal.Print RegExp.Nombre,

RegExo.Apellido, RegExp.Edad Next IClose # 3

Page 15: Vb II, Unidad 2, Manejo De Archivos

Instrucciones en los Archivos Secuencial y Aleatorio Put.- Guarda en el disco los datos acomodados en el buffer

del registro. En el ejemplo en el canal 3 con el que se abrió el archivo, el 1 va a ser el número de renglón o registro donde guardaremos los datos.

Get.- Instrucción para leer y traer un registro específico. Con LOF se indica la cantidad de bytes que se han utilizado en el disco para un archivo de datos que se ha abierto. A= LOF(número de canal). En A se guardan el número de caracteres utilizados por el archivo. Para saber el número de registros sería W= A/ número de bytes para cada registro. ¡Recuerda que se utiliza un Byte por carácter!. Por ello para edad considerando entre 0 y 99 es de dos + 60 de nombre y apellido.

Page 16: Vb II, Unidad 2, Manejo De Archivos

Actividad

Reproduce la siguiente interfaz Introduce el código para archivo

secuencial y aleatorio. Explica cada instrucción.

Page 17: Vb II, Unidad 2, Manejo De Archivos

Archivo secuencialPrivate Sub Crear_secuencial_Click() Dim nombre As String, tel, NT As Integer NT = FreeFile Open "C:\ejemplo.txt" For Output As #NT Write #NT, InputBox("deme un nombre") Write #NT, InputBox("deme su telefono") Close #NTEnd Sub

Private Sub Agregar_secuencial_Click() Dim nombre As String, tel, NT As Integer NT = FreeFile Open "C:\ejemplo.txt" For Append As #NT Write #NT, InputBox("deme un nombre") Write #NT, InputBox("deme su telefono") Close #NTEnd Sub

Private Sub Consulta_secuencial_Click()Dim nombre As String, tel, #NT As Integer NT = FreeFile Open "C:\ejemplo.txt" For Input As #NT Do While Not EOF(NT) Input #NT, nombre, tel Picture1.Print "nombre: " & nombre, "tel: " & tel Loop Close #NTEnd Sub

Private Sub Limpiar_secuencial_Click() Picture1.ClsEnd Sub

Page 18: Vb II, Unidad 2, Manejo De Archivos

Archivo Aleatorio

REM a nivel móduloType amigos Nombre as string *10 Tel as string *7End type

Dim regamigos as amigos

Private Sub Crear_aleatorio_Click() Dim nombre As String, tel, NT As Integer NT = FreeFile Open "C:\ejemplo2.txt" For Random As #NT Len = 17 REgamigos.nombre = InputBox("deme su nombre") REgamigos.tel = InputBox("deme su telefono") Put #NT, 1, REgamigosClose #NTEnd Sub

Private Sub Agregar_aleatorio_Click()Dim nombre As String, tel, NT, W, Ultimoreg As Integer NT = FreeFile Open "C:\ejemplo2.txt" For Random As #NT Len = 17 W = LOF(NT) / 17 REgamigos.nombre = InputBox("deme su nombre") REgamigos.tel = InputBox("deme su telefono") Ultimoreg = W + 1 Put #NT, Ultimoreg, REgamigosClose #NTEnd Sub

Private Sub Consulta_aleatorio_Click()Dim nombre As String, tel, NT, W, Ultimoreg As Integer NT = FreeFile Open "C:\ejemplo2.txt" For Random As #NT Len = 17 W = LOF(NT) / 17 cualreg = Int(InputBox("qué registro")) If cualreg > 0 And cualreg <= W Then Get #NT, cualreg, REgamigos Picture2.Print REgamigos.nombre, REgamigos.tel Else MsgBox "Solo tengo " & W & " registros" End If Close #NTEnd Sub

Private Sub Limpiar_aleatorio_Click() Picture2.ClsEnd Sub

Page 19: Vb II, Unidad 2, Manejo De Archivos

Explicación sobre Archivos Aleatorios: Es necesario crear estructura de datos compuestas

de datos simples:

Type nombre_estructuranombre as string *10edad as integer

End type

El total de bytes para la estructura de datos llamada nombre_estructura es 12, los caracteres ocupan un byte por carácter.

10 bytes para nombre

2 para edad

Page 20: Vb II, Unidad 2, Manejo De Archivos

Explicación sobre Archivos Aleatorios continuación…

Después se debe declarar el registro a utilizarDim registro as nombre_registro

Registro tiene la misma estructura de nombre_registro, la diferencia es que éste último es la estructura de datos que creamos y registro es una variable de la naturaleza de la estructura creada.

10 bytes para nombre

2 para edad

10 bytes para nombre

2 para edad

Nombre_registro registro

Page 21: Vb II, Unidad 2, Manejo De Archivos

Explicación sobre Archivos Aleatorios continuación…

Después se debe declarar el registro a utilizarDim registro as nombre_registro

Una vez abierto el archivo guardas los datos de la siguiente:

Registro.nombre=inputbox(“Su nombre”)Registro.edad=inputbox(“Su edad”)Put #canal, N0registro, registro

Registro.nombre guarda el nombre en la posición del registro llamada nombre. Quiere decir que se debe obtener c/elemento del registro.

Cuando guardamos la información en el archivo lo hacemos mandando todo el registro.

Page 22: Vb II, Unidad 2, Manejo De Archivos

Explicación sobre Archivos Aleatorios continuación…

Cuando se lee la información:Get #Canal, N0registro, registro

Leemos todo el registro, para saber que hay en él:Pic.print registro.nombrePic.print registro.edad

Para saber cuantos registros tenemos en total hacemos:W=LOF(#canal)/total_de_bytes

LOF regresa el tamaño del archivo y como sabemos lo que mide en bytes cada registro, podemos saber el total de registros.

Page 23: Vb II, Unidad 2, Manejo De Archivos

Bibliografía

Álvarez(2001). Computación 2, programación. México, Universidad Autónoma de Nuevo León. Publicaciones Cultural

Page 24: Vb II, Unidad 2, Manejo De Archivos

Segunda actividad para parcial uno 20 %

INSTRUCCIÓN DESCRIPCION ARCHIVOSECUENCIAL

ARCHIVOALEATORIO

Open

Número de canal

Modo

Append

Input

Output

Random

FreeFile

Close

28 al 31 de enero

Page 25: Vb II, Unidad 2, Manejo De Archivos

Continuación…

INSTRUCCIÓN DESCRIPCION ARCHIVOSECUENCIAL

ARCHIVOALEATORIO

EOF

On Error Goto <etiqueta>

Type…EndType

Put

Get

TIPO DE ARCHIVO

DEFINICIÓN VENTAJAS DESVENTAJAS

Secuencial

Aleatorio

Page 26: Vb II, Unidad 2, Manejo De Archivos

Criterio para evaluar el cuadro comparativoCRITERIO EXCELENTE

10SATISFACTORIO

5NECESITA MEJORAR

0

1.Descripción de la instrucción de los Archivos Secuenciales

Se muestra correctamente la funcionalidad de los Archivos Secuenciales.

No es del todo correcta la descripción de los Archivos Secuenciales pero se aprecia la finalidad de la misma.

Omitió este punto.

2.Descripción de la instrucción de los Archivos Aleatorios

Se muestra correctamente la funcionalidad de los Archivos Aleatorios.

No es del todo correcta la descripción de los Archivos Aleatorios pero se aprecia la finalidad de la misma.

Omitió este punto.

3.Definición de los Archivos Secuenciales

Se muestra correctamente la definición de los Archivos Secuenciales.

No es del todo correcta la definición de Archivos Secuenciales pero se aprecia la finalidad de la misma.

Omitió este punto.

4.Definición de los Archivos Aleatorios

Se muestra correctamente la definición de los Archivos Aleatorios.

No es del todo correcta la definición de los Archivos Aleatorios pero se aprecia la finalidad de la misma.

Omitió este punto.

5.Ventajas de los Archivos Secuenciales

Se muestran todas las ventajas de los Archivos Secuenciales.

No se muestran todas las Ventajas de los Archivos Secuenciales.

Omitió este punto.

6.Ventajas de los Archivos Aleatorios

Se muestran todas las ventajas de los Archivos Aleatorios.

No se muestran todas las ventajas de los Archivos Secuenciales.

Omitió este punto.

Page 27: Vb II, Unidad 2, Manejo De Archivos

Continuación…

CRITERIO EXCELENTE10

SATISFACTORIO5

NECESITA MEJORAR0

7.Desventajas de los Archivos Secuenciales

Se muestran todas las desventajas de los Archivos Secuenciales.

No se muestran todas las desventajas de los Archivos Secuenciales.

Omitió este punto.

8.Desventajas de los ArchivosAleatorios

Se muestran todas las desventajas de los Archivos Aleatorios.

No se muestran todas las desventajas de los Archivos Aleatorios.

Omitió este punto.

9.Liderazgo Intelectual

Realización efectiva del cuadro comparativo con los puntos señalados del uno al ocho.

Realización más o menos efectiva del cuadro comparativo con los puntos señalados del uno al ocho.

Realización no efectiva del cuadro comparativo con los puntos señalados del uno al ocho.

10.Comunicación La coherencia de la redacción de las categorías solicitadas impecable y sin faltas ortográficas.

Presenta algunos detalles en la coherencia de la redacción de las categorías solicitadas y/o presentan algunas faltas ortográficas y/o no es impecable.

Presenta muchos detalles en la coherencia de la redacción de las categorías solicitadas y/o presentan muchas faltas ortográficas y/o no es impecable.

Page 28: Vb II, Unidad 2, Manejo De Archivos

Proyecto uno 20 % para segundo parcial Adapta el código de las páginas 166 a la 169 de

tú libro o en su defecto el que se muestra en la diapositiva siguiente para resolver un problema X por archivos secuenciales.

Describe el problema Explica cada instrucción

18 al 22 de febrero

Page 29: Vb II, Unidad 2, Manejo De Archivos

Código archivos secuencialesPrivate Sub Crear_Click()Open "C:\Documents and Settings\veronica\Mis documentos\archivo.dat" For Output As #3 nombre = InputBox("deme su nombre") precio = InputBox("deme su fecha") pasillo=InputBox(“deme el pasillo”) Write #3, nombre, precio, pasilloClose #3End Sub

Private Sub Agregar_Click()Open "C:\Documents and Settings\veronica\Mis documentos\archivo.dat" For Append As #4 nombre = InputBox("deme su nombre") precio = InputBox("deme su fecha") pasillo=InputBox(“deme el pasillo”) Write #4, nombre, precio, pasilloClose #4End Sub

Private Sub Listar_Click()Open "C:\Documents and Settings\veronica\Mis documentos\archivo.dat" For Input As #5dat = 0 Do While Not EOF(5) Input #4, nombre, precio, pasillo Picture1.Print nombre Picture1.Print precio Picture1.Print pasillo dat = dat + 3 LoopClose #5End Sub

Private Sub Limpiar_Click() Picture1.ClsEnd Sub

Page 30: Vb II, Unidad 2, Manejo De Archivos

Criterio para evaluar el proyecto uno del parcial dos

Criterios de valoración

puntaje10

puntaje5

puntaje0

1. Descripción La descripción es clara, concisa y congruente a lo solicitado.

La descripción no es del todo clara o concisa o congruente a lo solicitado.

Se omitió este punto

2. Adaptación La adaptación es congruente con la descripción del problema y con lo solicitado

La adaptación no es del todo congruente con la descripción del problema o con lo solicitado

Se omitió este punto

3. Explicación Se explican claramente todas las líneas del código

No se explican claramente todas las líneas del código

Se omitió este punto

4. Presentación y funcionamiento

Es puntual, funciona correctamente y no requirieron ayuda para realizarlo.

Se omitió algún (os) puntos señalados

Se omitió este punto

5. Entrega * En díadas o tríadas No aplica

Page 31: Vb II, Unidad 2, Manejo De Archivos

Proyecto dos 20 % para segundo parcial Adapta el código de las páginas 178 a la 183 de

tú libro o en su defecto el que se muestra en la diapositiva siguiente para resolver un problema X por archivos aleatorios.

Describe el problema Explica cada instrucción

10 al 14 de marzo

Page 32: Vb II, Unidad 2, Manejo De Archivos

Código sugeridoCantidad de bytes total 90

35 para nombre

35 para dirección

15 para teléfono

5 para fecha de cumpleaños

Page 33: Vb II, Unidad 2, Manejo De Archivos

Código sugerido continuación

Page 34: Vb II, Unidad 2, Manejo De Archivos

Código sugerido continuación

Page 35: Vb II, Unidad 2, Manejo De Archivos

Criterio para evaluar el proyecto dos del parcial dos

Criterios de valoración

puntaje10

puntaje5

puntaje0

1. Descripción La descripción es clara, concisa y congruente a lo solicitado.

La descripción no es del todo clara o concisa o congruente a lo solicitado.

Se omitió este punto

2. Adaptación La adaptación es congruente con la descripción del problema y con lo solicitado

La adaptación no es del todo congruente con la descripción del problema o con lo solicitado

Se omitió este punto

3. Explicación Se explican claramente todas las líneas del código

No se explican claramente todas las líneas del código

Se omitió este punto

4. Presentación y funcionamiento

Es puntual, funciona correctamente y no requirieron ayuda para realizarlo.

Se omitió algún (os) puntos señalados

Se omitió este punto

5. Entrega * En díadas o tríadas No aplica