clase1 archivos

21
03/08/12 Ing. Diosa Pérez 1 Unidad V Archivo Sesión Nro 1 Instrucciones de Manejo de Archivos

Upload: diosa-perez

Post on 03-Jul-2015

253 views

Category:

Education


0 download

DESCRIPTION

Clase de Archivos en Visual Basic

TRANSCRIPT

Page 1: Clase1 archivos

03/08/12 Ing. Diosa Pérez 1

Unidad V Archivo

Sesión Nro 1

Instrucciones de Manejo de Archivos

Page 2: Clase1 archivos

Ing. Diosa Pérez 203/08/12

ArchivosDefinición

Tipos de ArchivosInstrucciones básicas de Manejo de Archivos Abrir o crear un archivo Cerrar un archivo Determinar el número de bytes que ocupa un archivo Determinar el numero de bytes que ocupa un registro Determinación del número de registro de un archivo Leer datos de un archivo Grabar datos en un archivo Eliminar un archivo Renombrar un archivo

Page 3: Clase1 archivos

Ing. Diosa Pérez 303/08/12

Definición de un Archivo

Cédula Nombre Nota

44445 Diosa Pérez 20

34123 Alfio Nicolosi 19

56789 Natli Biffa 18

Campo1 campo2 campo3Registro

Estructura de Datos

Que permite organizar y almacenar en forma permanente los elementos

que lo conforman

Que permite organizar y almacenar en forma permanente los elementos

que lo conforman

utilizando

Dis

cos d

uros

Dis

quet

es

Cd

Reg

raba

ble Pend

rive

Dispositivos de AlmacenamientoPermanente

Dispositivos de AlmacenamientoPermanente

Page 4: Clase1 archivos

Ing. Diosa Pérez 403/08/12

Clasificación de un Archivo1. De acuerdo a su Contenido

Archivos Textos

Archivos Binarios

2. De acuerdo al Modo de Acceso

Archivo Secuencial

Archivo Directo

3. De acuerdo a su Permanencia

Archivo Maestro

Archivo Movimiento

Archivo Histórico

Clasificar

Page 5: Clase1 archivos

Ing. Diosa Pérez 503/08/12

Clasificación de un Archivo4. Según su Aplicación Archivos de Programas Archivos de Aplicación Archivos de datos

• Secuenciales• Directos

Clasificar

Page 6: Clase1 archivos

Ing. Diosa Pérez 603/08/12

Componentes de un Archivo

Registro: estructura de datos que organiza un conjunto de datos de diferentes tipos (campos), bajo un mismo nombre

Campo: es cada uno de los ítems o variables que forman el registro, el campo más importante dentro de un registro es el campo clave, el cual permite identificar el registro ya que es único. Por ejemplo, la cédula de identidad.

Un archivo de datos se conforma por un conjunto de registrosEjemplo:

Archivo: Estudiantes

Registro del estudiante: Registroest:

Cédula

Nombre

Nota Obtenida

Campos del registro

Campo clave

Page 7: Clase1 archivos

Ing. Diosa Pérez 703/08/12

Operaciones Básicas de Manejo de ArchivoApertura de un Archivo (Open)

Proceso que permite preparar al archivo para su uso, activando las operaciones de entrada y salida, es decir, de lectura y escritura sobre un archivo.

Grabar en un Archivo (Put)

Proceso que permite almacenar la información que se encuentra en la memoria Principal del computador, en memoria auxiliar (discos, CD, Pen driver,etc.)

Leer de un archivo (Get)

Proceso que permite accesar la información que se encuentra en memoria auxiliar (discos, CD, Pen driver), para ubicarla en la memoria Principal del computador

Cierre de un Archivo (Close)Proceso que permite liberar el archivo de la memoria, es decir, se termina con las operaciones de entrada y salida de un archivo abierto.

Page 8: Clase1 archivos

Ing. Diosa Pérez 803/08/12

Instrucciones de Manejo de Archivos

Open (Abrir un Archivo)Operación a realizar antes de una lectura o escritura. SintaxisOpen rutaacceso [For Random] As [#] numarchivo[Len=longi_registro]

Donde:Rutaacceso: Expresión de carácter que especifica un nombre físico de archivo, puede incluir el directorio o carpeta y la unidad de disco donde se consigue el mismo.

Random: especifica el modo de acceso aleatorio o directo

Numarchivo: es el número del archivo (debe estar en el rango de 1 a 511 inclusive), este número identificará al archivo en las operaciones que se realicen sobre él.

Longi_registro: expresión entera que fija la longitud o tamaño en bytes del registro, es un número igual o inferior a 32767 byte. Si se omite se asume la longitud de 128 bytes.

Open (Abrir un Archivo)Operación a realizar antes de una lectura o escritura. SintaxisOpen rutaacceso [For Random] As [#] numarchivo[Len=longi_registro]

Donde:Rutaacceso: Expresión de carácter que especifica un nombre físico de archivo, puede incluir el directorio o carpeta y la unidad de disco donde se consigue el mismo.

Random: especifica el modo de acceso aleatorio o directo

Numarchivo: es el número del archivo (debe estar en el rango de 1 a 511 inclusive), este número identificará al archivo en las operaciones que se realicen sobre él.

Longi_registro: expresión entera que fija la longitud o tamaño en bytes del registro, es un número igual o inferior a 32767 byte. Si se omite se asume la longitud de 128 bytes.

Page 9: Clase1 archivos

Ing. Diosa Pérez 903/08/12

Instrucciones de Manejo de Archivos EjemploOpen “A:/Datos.Dat” for Random as #3 len=90

Al archivo Datos.dat ubicado en la unidad de disco A, se le asigna el número de identificación 3 (nombre lógico) y se le asigna un longitud de 90 bytes por cada registro.

Private Type Registro Ced as string*10

Nom as string*30 Nota as single

end TypeDim R as registro

Open “Alumno.Dat” for Random as #1 Len=len(R)

Al archivo Alumno se le asigna el número de identificación 1

EjemploOpen “A:/Datos.Dat” for Random as #3 len=90

Al archivo Datos.dat ubicado en la unidad de disco A, se le asigna el número de identificación 3 (nombre lógico) y se le asigna un longitud de 90 bytes por cada registro.

Private Type Registro Ced as string*10

Nom as string*30 Nota as single

end TypeDim R as registro

Open “Alumno.Dat” for Random as #1 Len=len(R)

Al archivo Alumno se le asigna el número de identificación 1

Se determina automáticamente la longitud de la variable registro con la instrucción Len(R)

10 +

30

4______

44

Page 10: Clase1 archivos

Ing. Diosa Pérez 1003/08/12

Instrucciones es de Manejo de Archivos

Put (Grabar información en un archivo)La sentencia Put escribe en un archivo los datos contenidos en una variableSintaxisPut [#] numarchivo,[ numregistro ], nomvariableDonde:numarchivo: es el número que identifica el archivo durante el procesonumregistro: es el número de registro que se desea grabar (de manera

directa), si se omite se realizará la operación donde se encuentre el apuntador del archivo.

nomvariable: es la variable definida con una estructura de datos de tipo registro, que contiene información que va a escribir en el disco.

Ejemplo:Put #2,28, R Put #2, , R

Graba la información en el registro 28 Graba la información en el registro 29 Si se acaba de abrir el archivo y se realiza un Put y no se escribe el

número de registro, este se grabará en el registro número 1, ya que al abrir un archivo, el apuntador del mismo se coloca automáticamente al inicio.

Put (Grabar información en un archivo)La sentencia Put escribe en un archivo los datos contenidos en una variableSintaxisPut [#] numarchivo,[ numregistro ], nomvariableDonde:numarchivo: es el número que identifica el archivo durante el procesonumregistro: es el número de registro que se desea grabar (de manera

directa), si se omite se realizará la operación donde se encuentre el apuntador del archivo.

nomvariable: es la variable definida con una estructura de datos de tipo registro, que contiene información que va a escribir en el disco.

Ejemplo:Put #2,28, R Put #2, , R

Graba la información en el registro 28 Graba la información en el registro 29 Si se acaba de abrir el archivo y se realiza un Put y no se escribe el

número de registro, este se grabará en el registro número 1, ya que al abrir un archivo, el apuntador del mismo se coloca automáticamente al inicio.

Page 11: Clase1 archivos

Ing. Diosa Pérez 1103/08/12

Instrucciones de Manejo de Archivos

Get (Leer de un archivo)

La sentencia Get extrae los datos desde un archivo abierto y los coloca en una variable de tipo registroSintaxis

Get [#] numarchiv o,[numregistro],nomvarregistro

Donde:Numarchivo: es el número que especifica el archivo durante el procesoNumregistro: es el número del registro que se desea extraer del archivo, si se omite realizará la operación donde se encuentre el apuntador del archivoNomvarregistro: es el nombre de la variable de tipo registro y es allí donde se almacenan los datos en memoria.

Get (Leer de un archivo)

La sentencia Get extrae los datos desde un archivo abierto y los coloca en una variable de tipo registroSintaxis

Get [#] numarchiv o,[numregistro],nomvarregistro

Donde:Numarchivo: es el número que especifica el archivo durante el procesoNumregistro: es el número del registro que se desea extraer del archivo, si se omite realizará la operación donde se encuentre el apuntador del archivoNomvarregistro: es el nombre de la variable de tipo registro y es allí donde se almacenan los datos en memoria.

Page 12: Clase1 archivos

Ing. Diosa Pérez 1203/08/12

Instrucciones de Manejo de Archivos

Ejemplo

ShowGet #1,2,reg ‘Se lee el registro 2 del archivo 1Print reg.nom & space(2) & reg.nota

Se extrae del archivo referenciado con el N° 1 el registro 2 y se almacena en la variable reg, luego se imprimen los campos nombre y nota de este registro, que son los valores Alfio Nicolosi y la nota de 19

Get #1, , reg ‘Se lee el registro 3 del archivo 1Print reg.nom &space(2) & reg.nota

Se extrae del archivo referenciado con el N° 1, el registro 3 y se almacena en la variable reg, luego se imprimen los campos nombre y nota de este registro, que para el ejemplo, se imprime el nombre Natali Biffa y la nota de 18

Ejemplo

ShowGet #1,2,reg ‘Se lee el registro 2 del archivo 1Print reg.nom & space(2) & reg.nota

Se extrae del archivo referenciado con el N° 1 el registro 2 y se almacena en la variable reg, luego se imprimen los campos nombre y nota de este registro, que son los valores Alfio Nicolosi y la nota de 19

Get #1, , reg ‘Se lee el registro 3 del archivo 1Print reg.nom &space(2) & reg.nota

Se extrae del archivo referenciado con el N° 1, el registro 3 y se almacena en la variable reg, luego se imprimen los campos nombre y nota de este registro, que para el ejemplo, se imprime el nombre Natali Biffa y la nota de 18

Cédula Nombre Nota

44445 Diosa Pérez 20

34123 Alfio Nicolosi 19

56789 Natali Biffa 18

Campo1 campo2 campo3Estructura de Datos

Registro

Page 13: Clase1 archivos

Ing. Diosa Pérez 1303/08/12

Instrucciones de Manejo de Archivos La sentencia LOF es una función que devuelve un dato de tipo long la cual indica el tamaño en byte, de un archivo abierto.Sintaxis LOF (numarchivo)Donde numarchivo es un número que identifica al archivo abierto

La sentencia LOF es una función que devuelve un dato de tipo long la cual indica el tamaño en byte, de un archivo abierto.Sintaxis LOF (numarchivo)Donde numarchivo es un número que identifica al archivo abierto

La sentencia LEN permite obtener la longitud de registro en bytesSintaxis Len (nomvarregistro)Donde nomvarregistro es es una variable de tipo registro

La sentencia LEN permite obtener la longitud de registro en bytesSintaxis Len (nomvarregistro)Donde nomvarregistro es es una variable de tipo registro

La sentencia siguiente permite obtener el número de registro que tiene un archivo directo

Totalreg=LOF(numarchivo)\Len(nomvarregistro)Donde Numarchivo: número que identifica al archivoNomvarregistro: es el nombre de la variable de tipo registro

La sentencia siguiente permite obtener el número de registro que tiene un archivo directo

Totalreg=LOF(numarchivo)\Len(nomvarregistro)Donde Numarchivo: número que identifica al archivoNomvarregistro: es el nombre de la variable de tipo registro

Page 14: Clase1 archivos

Ing. Diosa Pérez 1403/08/12

Instrucciones de Manejo de Archivos

Close (Cerrar un archivo)

La sentencia Close es utilizada para finalizar las operaciones de lectura y escritura en un archivo abierto.

Sintaxis

Close [[#] numarchivo][,[#]numarchivo]...

Donde:

numarchivo: es cualquier número de archivo válido, que se desea cerrar. Al omitirse, cierra todos los archivos para los cuales se ejecutó la sentencia Open.

Ejemplos

Close #1 ‘ Cierra el archivo Nro 1

Close #3,#6 ‘ Cierra el archivo Nro 3 y Nro 6

Close ‘ Cierra todos los archivos que estén abiertos

Close (Cerrar un archivo)

La sentencia Close es utilizada para finalizar las operaciones de lectura y escritura en un archivo abierto.

Sintaxis

Close [[#] numarchivo][,[#]numarchivo]...

Donde:

numarchivo: es cualquier número de archivo válido, que se desea cerrar. Al omitirse, cierra todos los archivos para los cuales se ejecutó la sentencia Open.

Ejemplos

Close #1 ‘ Cierra el archivo Nro 1

Close #3,#6 ‘ Cierra el archivo Nro 3 y Nro 6

Close ‘ Cierra todos los archivos que estén abiertos

Page 15: Clase1 archivos

Ing. Diosa Pérez 1503/08/12

Instrucciones de Manejo de Archivos

Name (Cambiar el nombre a un archivo)

La sentencia Name permite cambiar el nombre físico dado a un archivo. Para poder utilizar este comando, se debe previamente cerrar el archivo.

Sintaxis

Name nombviejo as nuevonomb

Donde:

nombviejo: es una expresión de carácter, que representa el nombre físico del archivo, es decir el nombre como esta grabado en disco.

Nombnuevo: es el nuevo nombre físico que tendrá el archivo, debe darse en una expresión de carácter que este entre comillas.

Ejemplo

Close ‘Primero debe cerrarse el archivo

Name “Arnotas.dat” as “Notas.dat”

Name (Cambiar el nombre a un archivo)

La sentencia Name permite cambiar el nombre físico dado a un archivo. Para poder utilizar este comando, se debe previamente cerrar el archivo.

Sintaxis

Name nombviejo as nuevonomb

Donde:

nombviejo: es una expresión de carácter, que representa el nombre físico del archivo, es decir el nombre como esta grabado en disco.

Nombnuevo: es el nuevo nombre físico que tendrá el archivo, debe darse en una expresión de carácter que este entre comillas.

Ejemplo

Close ‘Primero debe cerrarse el archivo

Name “Arnotas.dat” as “Notas.dat”

Page 16: Clase1 archivos

Ing. Diosa Pérez 1603/08/12

Instrucciones de Manejo de Archivos

Kill (Elimnar un archivo)

La sentencia Kill permite eliminar del disco duro o disquete un archivo. Para poder realizar esta operación se debe cerrar el archivo

Sintaxis

Kill ruta_nombarchivo

Donde:

ruta_nombarchivo: Es una expresión de carácter, que representa es la ubicación y el nombre físico dado al archivo, es decir, el nombre como aparece dicho archivo grabado en disco duro,disquete, o pendrive.

Ejemplos

Kill “C:/Carpeta/Clientes.dat”

Kill “A:/Alumno.dat”

Kill “Notas.dat”

Kill (Elimnar un archivo)

La sentencia Kill permite eliminar del disco duro o disquete un archivo. Para poder realizar esta operación se debe cerrar el archivo

Sintaxis

Kill ruta_nombarchivo

Donde:

ruta_nombarchivo: Es una expresión de carácter, que representa es la ubicación y el nombre físico dado al archivo, es decir, el nombre como aparece dicho archivo grabado en disco duro,disquete, o pendrive.

Ejemplos

Kill “C:/Carpeta/Clientes.dat”

Kill “A:/Alumno.dat”

Kill “Notas.dat”

Page 17: Clase1 archivos

Ing. Diosa Pérez 1703/08/12

Inclusión de datos en un Archivo1. Apertura del archivo (OPEN)

– Definir la estructura de tipo registro en General de un formulario, o en un módulo.

– Definir una variable de tipo registro en General de un formulario, o en el módulo o definir dicha variable en el procedimiento.

– Abrir propiamente dicho el archivo en el form load del primer formulario (Open).

1. Apertura del archivo (OPEN)– Definir la estructura de tipo registro en General de un formulario,

o en un módulo.– Definir una variable de tipo registro en General de un formulario,

o en el módulo o definir dicha variable en el procedimiento.– Abrir propiamente dicho el archivo en el form load del primer

formulario (Open).

2. Asignar los datos (Almacenar los datos en la estructura registro)– Por lectura o (con Inputbox)– Por asignación

2. Asignar los datos (Almacenar los datos en la estructura registro)– Por lectura o (con Inputbox)– Por asignación

3. Escribir o grabar el registro en el archivo (PUT) en la posición indicada del LOF(1)\len (registro)

3. Escribir o grabar el registro en el archivo (PUT) en la posición indicada del LOF(1)\len (registro)

4. Cerrar el archivo (Close)

5. Finalizar el proceso4. Cerrar el archivo (Close)

5. Finalizar el proceso

Page 18: Clase1 archivos

Ing. Diosa Pérez 1803/08/12

Inclusión de datos en un Archivo sin validarPrivate Sub Crear_click() Dim reg As Registro, resp As String, n as integerOpen "Alumno.dat" For Random As #1 Len = Len(reg) Do ‘Lectura o almacenamiento de datos en el Registro Do Reg.Ced = InputBox("de la cédula") Loop until Reg.ced <>"“ Do Reg.nom = InputBox("de el nombre del alumno") Loop until Reg.nom <>"" Do Reg.nota = InputBox("de la nota del alumno") Loop Until Reg.nota >= 0 and Reg.nota <=20 n=lof(1)\len(reg) Put #1, n+1, reg ‘Se Graba el registro en el archivo en la posición n+1 resp = Ucase(InputBox("Desea continuar S/N")) Loop Until resp <> "S" Close #1 ‘ Se Cierra del archivoEnd Sub

Private Sub Crear_click() Dim reg As Registro, resp As String, n as integerOpen "Alumno.dat" For Random As #1 Len = Len(reg) Do ‘Lectura o almacenamiento de datos en el Registro Do Reg.Ced = InputBox("de la cédula") Loop until Reg.ced <>"“ Do Reg.nom = InputBox("de el nombre del alumno") Loop until Reg.nom <>"" Do Reg.nota = InputBox("de la nota del alumno") Loop Until Reg.nota >= 0 and Reg.nota <=20 n=lof(1)\len(reg) Put #1, n+1, reg ‘Se Graba el registro en el archivo en la posición n+1 resp = Ucase(InputBox("Desea continuar S/N")) Loop Until resp <> "S" Close #1 ‘ Se Cierra del archivoEnd Sub

General

Private Type Registro

ced as string*10

nom as string*30

nota as single

End Type

Dim reg as registro

General

Private Type Registro

ced as string*10

nom as string*30

nota as single

End Type

Dim reg as registro

Page 19: Clase1 archivos

Ing. Diosa Pérez 1903/08/12

Mostrar la información de un Archivo1. Apertura del archivo (Si no esta abierto)

• Definir la estructura de tipo registro en General de un formulario, o en un módulo.

• Definir una variable de tipo registro en General de un formulario, o en un módulo, o definir dicha variable en el procedimiento.

• Abrir propiamente dicho el archivo ‘ OPEN

1. Apertura del archivo (Si no esta abierto)• Definir la estructura de tipo registro en General de un formulario, o

en un módulo.• Definir una variable de tipo registro en General de un formulario, o

en un módulo, o definir dicha variable en el procedimiento.• Abrir propiamente dicho el archivo ‘ OPEN

2. Calcular la cantidad de registro que tiene un archivo ‘ n=Lof(1)\len(Reg)2. Calcular la cantidad de registro que tiene un archivo ‘ n=Lof(1)\len(Reg)

3. Hacer un ciclo para leer los datos del archivo e imprimir los registros del archivo por pantalla

‘ For i=1 to n

‘ Get #1,i, reg

3. Hacer un ciclo para leer los datos del archivo e imprimir los registros del archivo por pantalla

‘ For i=1 to n

‘ Get #1,i, reg

4. Cerrar el archivo ‘ Close

5. Finalizar el proceso4. Cerrar el archivo ‘ Close

5. Finalizar el proceso

Page 20: Clase1 archivos

Ing. Diosa Pérez 2003/08/12

Mostrar la información de un ArchivoPrivate Sub Imprimir_Click()Dim i as integer'Apertura del archivo (sino se hizo en Form_Load())Open "Alumno.dat" For Random As #1 Len = Len(reg)

'Calculo del número de registro n = LOF(1) \ Len(reg) Label1.caption=“Cedula Nombre Nota" For i= 1 To n Get #1,i, reg ‘ Lectura del Archivo List1.additem Reg.Ced & Reg.nom & Reg.nota ‘ Impresión Next i Close #1 ‘ Se cierra el archivoEnd Sub

Private Sub Imprimir_Click()Dim i as integer'Apertura del archivo (sino se hizo en Form_Load())Open "Alumno.dat" For Random As #1 Len = Len(reg)

'Calculo del número de registro n = LOF(1) \ Len(reg) Label1.caption=“Cedula Nombre Nota" For i= 1 To n Get #1,i, reg ‘ Lectura del Archivo List1.additem Reg.Ced & Reg.nom & Reg.nota ‘ Impresión Next i Close #1 ‘ Se cierra el archivoEnd Sub

General

Private Type Registro

ced as string*10

nom as string*30

nota as single

End Type

Dim Reg as registro

Dim n as integer

General

Private Type Registro

ced as string*10

nom as string*30

nota as single

End Type

Dim Reg as registro

Dim n as integer

Page 21: Clase1 archivos

Ing. Diosa Pérez 2103/08/12

Ejercicios PropuestosElabore una aplicación en Visual Basic que presente mediante un objeto lista los siguientes procedimientos generales Inclusión: permite crear el archivo Obra con la siguiente estructura de registro: Código de la Obra Nombre de la Obra Tipo de Obra (1. Construcción 2. Mantenimiento) Fecha de inicio (Formato: dd/mm/aaaa) Costo de la Obra Mostrar: permite mostrar todos los registros del archivo Salir: finaliza la aplicación

Elabore una aplicación en Visual Basic que presente mediante un objeto lista los siguientes procedimientos generales Inclusión: permite crear el archivo Obra con la siguiente estructura de registro: Código de la Obra Nombre de la Obra Tipo de Obra (1. Construcción 2. Mantenimiento) Fecha de inicio (Formato: dd/mm/aaaa) Costo de la Obra Mostrar: permite mostrar todos los registros del archivo Salir: finaliza la aplicación