Este documento resume las instrucciones básicas para el manejo de archivos, incluyendo cómo abrir, cerrar, leer, escribir y eliminar archivos. También explica los conceptos clave como registros, campos, y tipos de archivos.
1. Unidad V
Archivo
Sesión Nro 1
Instrucciones de Manejo de
Archivos
03/08/12 Ing. Diosa Pérez 1
2. Archivos
Definición
Tipos de Archivos
Instrucciones 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
03/08/12 Ing. Diosa Pérez 2
3. Definición de un Archivo
ve
Estructura de Datos
dri
Pen
bl e
Campo1 campo2 campo3
R
ba
e Cédula Nombre Nota utilizando
gra
g
i 44445 Diosa Pérez 20
s
Re
ete
s 34123 Alfio Nicolosi 19
Cd
t
qu
r 56789 Natli Biffa 18
Dis
o
s
uro
Que permite organizar y almacenar
d
cos
en forma permanente los elementos
Dis
que lo conforman
Dispositivos de Almacenamiento
Permanente
03/08/12 Ing. Diosa Pérez 3
4. Clasificar
Clasificación de un Archivo
1. 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
03/08/12 Ing. Diosa Pérez 4
5. Clasificar
Clasificación de un Archivo
4. Según su Aplicación
Archivos de Programas
Archivos de Aplicación
Archivos de datos
• Secuenciales
• Directos
•
03/08/12 Ing. Diosa Pérez 5
6. 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 registros
Ejemplo:
Archivo: Estudiantes
Registro del estudiante:
Campo clave
Registroest:
Cédula
Nombre Campos del registro
Nota Obtenida
03/08/12 Ing. Diosa Pérez 6
7. Operaciones Básicas de Manejo de Archivo
Apertura 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.
03/08/12 Ing. Diosa Pérez 7
8. Instrucciones de Manejo de Archivos
Open (Abrir un Archivo)
Open (Abrir un Archivo)
Operación aarealizar antes de una lectura ooescritura.
Operación realizar antes de una lectura escritura.
Sintaxis
Sintaxis
Open rutaacceso [For Random] As [#] numarchivo[Len=longi_registro]
Open rutaacceso [For Random] As [#] numarchivo[Len=longi_registro]
Donde:
Donde:
Rutaacceso: Expresión de carácter que especifica un nombre físico de
Rutaacceso: Expresión de carácter que especifica un nombre físico de
archivo, puede incluir el directorio oo carpeta yy la unidad de disco donde se
archivo, puede incluir el directorio carpeta la unidad de disco donde se
consigue el mismo.
consigue el mismo.
Random: especifica el modo de acceso aleatorio oodirecto
Random: especifica el modo de acceso aleatorio directo
Numarchivo: es el número del archivo (debe estar en el rango de 11 aa 511
Numarchivo: es el número del archivo (debe estar en el rango de 511
inclusive), este número identificará al archivo en las operaciones que se
inclusive), este número identificará al archivo en las operaciones que se
realicen sobre él.
realicen sobre él.
Longi_registro: expresión entera que fija la longitud oo tamaño en bytes del
Longi_registro: expresión entera que fija la longitud tamaño en bytes del
registro, es un número igual ooinferior aa32767 byte. Si se omite se asume la
registro, es un número igual inferior 32767 byte. Si se omite se asume la
longitud de 128 bytes.
longitud de 128 bytes.
03/08/12 Ing. Diosa Pérez 8
9. Instrucciones de Manejo de Archivos
Ejemplo
Ejemplo
Open “A:/Datos.Dat” for Random as #3 len=90
Open “A:/Datos.Dat” for Random as #3 len=90
Al archivo Datos.dat ubicado en la unidad de disco A, se le asigna el
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
número de identificación 3 (nombre lógico) y se le asigna un longitud de
90 bytes por cada registro.
90 bytes por cada registro.
Private Type Registro
Private Type Registro
Ced as string*10
Ced as string*10 10 +
Nom as string*30
Nom as string*30 Se determina automáticamente
30 la longitud de la variable registro
Nota as single
Nota as single con la instrucción Len(R)
4
end Type
end Type ______
Dim R as registro
Dim R as registro 44
Open “Alumno.Dat” for Random as #1 Len=len(R)
Open “Alumno.Dat” for Random as #1 Len=len(R)
Al archivo Alumno se le asigna el número de identificación 1
Al archivo Alumno se le asigna el número de identificación 1
03/08/12 Ing. Diosa Pérez 9
10. Instrucciones es de Manejo de Archivos
Put (Grabar información en un archivo)
Put (Grabar información en un archivo)
La sentencia Put escribe en un archivo los datos contenidos en una variable
La sentencia Put escribe en un archivo los datos contenidos en una variable
Sintaxis
Sintaxis
Put [#] numarchivo,[ numregistro ], nomvariable
Put [#] numarchivo,[ numregistro ], nomvariable
Donde:
Donde:
numarchivo: es el número que identifica el archivo durante el proceso
numarchivo: es el número que identifica el archivo durante el proceso
numregistro: es el número de registro que se desea grabar (de manera
numregistro: 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
directa), si se omite se realizará la operación donde se encuentre el
apuntador del archivo.
apuntador del archivo.
nomvariable: es la variable definida con una estructura de datos de tipo
nomvariable: es la variable definida con una estructura de datos de tipo
registro, que contiene información que va a escribir en el disco.
registro, que contiene información que va a escribir en el disco.
Ejemplo:
Ejemplo:
Put #2,28, R
Put #2,28, R
Put #2, ,, R
Put #2, R
Graba la información en el registro 28
Graba la información en el registro 28
Graba la información en el registro 29
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
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
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
abrir un archivo, el apuntador del mismo se coloca automáticamente al
inicio.
inicio.
03/08/12 Ing. Diosa Pérez 10
11. Instrucciones de Manejo de Archivos
Get (Leer de un archivo)
Get (Leer de un archivo)
La sentencia Get extrae los datos desde un archivo abierto yylos coloca en
La sentencia Get extrae los datos desde un archivo abierto los coloca en
una variable de tipo registro
una variable de tipo registro
Sintaxis
Sintaxis
Get [#] numarchiv o,[numregistro],nomvarregistro
Get [#] numarchiv o,[numregistro],nomvarregistro
Donde:
Donde:
Numarchivo: es el número que especifica el archivo durante el proceso
Numarchivo: es el número que especifica el archivo durante el proceso
Numregistro: es el número del registro que se desea extraer del archivo,
Numregistro: 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
si se omite realizará la operación donde se encuentre el apuntador del
archivo
archivo
Nomvarregistro: es el nombre de la variable de tipo registro yy es allí
Nomvarregistro: es el nombre de la variable de tipo registro es allí
donde se almacenan los datos en memoria.
donde se almacenan los datos en memoria.
03/08/12 Ing. Diosa Pérez 11
12. Instrucciones de Manejo de Archivos
Estructura de Datos
Ejemplo
Ejemplo
Campo1 campo2 campo3
R
e
Cédula Nombre Nota
Show
Show
g
i 44445 Diosa Pérez 20
Get #1,2,reg ‘Se lee el registro 22del archivo 11
Get #1,2,reg ‘Se lee el registro del archivo s
t 34123 Alfio Nicolosi 19
r
Print reg.nom & space(2) & reg.nota
Print reg.nom & space(2) & reg.nota o 56789 Natali Biffa 18
Se extrae del archivo referenciado con el N° 11el registro 22yyse almacena
Se extrae del archivo referenciado con el N° el registro se almacena
en la variable reg, luego se imprimen los campos nombre yynota de este
en la variable reg, luego se imprimen los campos nombre nota de este
registro, que son los valores Alfio Nicolosi yyla nota de 19
registro, que son los valores Alfio Nicolosi la nota de 19
Get #1, , ,reg ‘Se lee el registro 33del archivo 11
Get #1, reg ‘Se lee el registro del archivo
Print reg.nom &space(2) & reg.nota
Print reg.nom &space(2) & reg.nota
Se extrae del archivo referenciado con el N° 1, el registro 33yyse almacena
Se extrae del archivo referenciado con el N° 1, el registro se almacena
en la variable reg, luego se imprimen los campos nombre yynota de este
en la variable reg, luego se imprimen los campos nombre nota de este
registro, que para el ejemplo, se imprime el nombre Natali Biffa yyla nota
registro, que para el ejemplo, se imprime el nombre Natali Biffa la nota
de 18
de 18
03/08/12 Ing. Diosa Pérez 12
13. Instrucciones de Manejo de Archivos
La sentencia LOF es una función que devuelve un dato de tipo long la cual
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.
indica el tamaño en byte, de un archivo abierto.
Sintaxis
Sintaxis
LOF (numarchivo)
LOF (numarchivo)
Donde numarchivo es un número que identifica al archivo abierto
Donde numarchivo es un número que identifica al archivo abierto
La sentencia LEN permite obtener la longitud de registro en bytes
La sentencia LEN permite obtener la longitud de registro en bytes
Sintaxis
Sintaxis
Len (nomvarregistro)
Len (nomvarregistro)
Donde nomvarregistro es es una variable de tipo registro
Donde nomvarregistro es es una variable de tipo registro
La sentencia siguiente permite obtener el número de registro que tiene un
La sentencia siguiente permite obtener el número de registro que tiene un
archivo directo
archivo directo
Totalreg=LOF(numarchivo)Len(nomvarregistro)
Totalreg=LOF(numarchivo)Len(nomvarregistro)
Donde
Donde
Numarchivo: número que identifica al archivo
Numarchivo: número que identifica al archivo
Nomvarregistro: es el nombre de la variable de tipo registro
Nomvarregistro: es el nombre de la variable de tipo registro
03/08/12 Ing. Diosa Pérez 13
14. Instrucciones de Manejo de Archivos
Close (Cerrar un archivo)
Close (Cerrar un archivo)
La sentencia Close es utilizada para finalizar las operaciones de lectura yy
La sentencia Close es utilizada para finalizar las operaciones de lectura
escritura en un archivo abierto.
escritura en un archivo abierto.
Sintaxis
Sintaxis
Close [[#] numarchivo][,[#]numarchivo]...
Close [[#] numarchivo][,[#]numarchivo]...
Donde:
Donde:
numarchivo: es cualquier número de archivo válido, que se desea cerrar.
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
Al omitirse, cierra todos los archivos para los cuales se ejecutó la
sentencia Open.
sentencia Open.
Ejemplos
Ejemplos
Close #1 ‘‘Cierra el archivo Nro 1
Close #1 Cierra el archivo Nro 1
Close #3,#6 ‘‘Cierra el archivo Nro 3 y Nro 6
Close #3,#6 Cierra el archivo Nro 3 y Nro 6
Close ‘‘Cierra todos los archivos que estén abiertos
Close Cierra todos los archivos que estén abiertos
03/08/12 Ing. Diosa Pérez 14
15. Instrucciones de Manejo de Archivos
Name (Cambiar el nombre a un archivo)
Name (Cambiar el nombre a un archivo)
La sentencia Name permite cambiar el nombre físico dado 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.
Para poder utilizar este comando, se debe previamente cerrar el archivo.
Sintaxis
Sintaxis
Name nombviejo as nuevonomb
Name nombviejo as nuevonomb
Donde:
Donde:
nombviejo: es una expresión de carácter, que representa el nombre físico
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.
del archivo, es decir el nombre como esta grabado en disco.
Nombnuevo: es el nuevo nombre físico que tendrá el archivo, debe darse
Nombnuevo: es el nuevo nombre físico que tendrá el archivo, debe darse
en una expresión de carácter que este entre comillas.
en una expresión de carácter que este entre comillas.
Ejemplo
Ejemplo
Close ‘Primero debe cerrarse el archivo
Close ‘Primero debe cerrarse el archivo
Name “Arnotas.dat” as “Notas.dat”
Name “Arnotas.dat” as “Notas.dat”
03/08/12 Ing. Diosa Pérez 15
16. Instrucciones de Manejo de Archivos
Kill (Elimnar un archivo)
Kill (Elimnar un archivo)
La sentencia Kill permite eliminar del disco duro o disquete 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
Para poder realizar esta operación se debe cerrar el archivo
Sintaxis
Sintaxis
Kill ruta_nombarchivo
Kill ruta_nombarchivo
Donde:
Donde:
ruta_nombarchivo: Es una expresión de carácter, que representa es la
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
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.
aparece dicho archivo grabado en disco duro,disquete, o pendrive.
Ejemplos
Ejemplos
Kill “C:/Carpeta/Clientes.dat”
Kill “C:/Carpeta/Clientes.dat”
Kill “A:/Alumno.dat”
Kill “A:/Alumno.dat”
Kill “Notas.dat”
Kill “Notas.dat”
03/08/12 Ing. Diosa Pérez 16
17. Inclusión de datos en un Archivo
1. Apertura del archivo (OPEN)
1. Apertura del archivo (OPEN)
– Definir la estructura de tipo registro en General de un formulario,
– Definir la estructura de tipo registro en General de un formulario,
o en un módulo.
o en un módulo.
– Definir una variable de tipo registro en General de un formulario,
– Definir una variable de tipo registro en General de un formulario,
o en el módulo o definir dicha variable en el procedimiento.
o en el módulo o definir dicha variable en el procedimiento.
– Abrir propiamente dicho el archivo en el form load del primer
– Abrir propiamente dicho el archivo en el form load del primer
formulario (Open).
formulario (Open).
2. Asignar los datos ((Almacenarlos datos en la estructura registro))
2. Asignar los datos Almacenar los datos en la estructura registro
– Por lectura o (con Inputbox)
– Por lectura o (con Inputbox)
– Por asignación
– Por asignación
3. Escribir o grabar el registro en el archivo (PUT) en la
3. Escribir o grabar el registro en el archivo (PUT) en la
posición indicada del LOF(1)len (registro)
posición indicada del LOF(1)len (registro)
4. Cerrar el archivo (Close)
4. Cerrar el archivo (Close)
5. Finalizar el proceso
5. Finalizar el proceso
03/08/12 Ing. Diosa Pérez 17
18. Inclusión de datos en un Archivo sin validar
Private Sub Crear_click() General
General
Private Sub Crear_click()
Dim reg As Registro, resp As String, nnas integer
Dim reg As Registro, resp As String, as integer Private Type Registro
Private Type Registro
Open "Alumno.dat" For Random As #1 Len = Len(reg)
Open "Alumno.dat" For Random As #1 Len = Len(reg)
Do ced as string*10
ced as string*10
Do
‘Lectura ooalmacenamiento de datos en el Registro
‘Lectura almacenamiento de datos en el Registro nom as string*30
nom as string*30
Do
Do nota as single
nota as single
Reg.Ced= InputBox("de la cédula")
Reg.Ced = InputBox("de la cédula")
Loop until Reg.ced <>"“ End Type
End Type
Loop until Reg.ced <>"“
Do
Do Dim reg as registro
Dim reg as registro
Reg.nom = InputBox("de el nombre del alumno")
Reg.nom = InputBox("de el nombre del alumno")
Loop until Reg.nom <>""
Loop until Reg.nom <>""
Do
Do
Reg.nota = InputBox("de la nota del alumno")
Reg.nota = InputBox("de la nota del alumno")
Loop Until Reg.nota >= 00and Reg.nota <=20
Loop Until Reg.nota >= and Reg.nota <=20
n=lof(1)len(reg)
n=lof(1)len(reg)
Put #1, n+1, reg ‘Se Graba el registro en el archivo en la posición n+1
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"))
resp = Ucase(InputBox("Desea continuar S/N"))
Loop Until resp <> "S"
Loop Until resp <> "S"
Close #1 ‘‘Se Cierra del archivo
Close #1 Se Cierra del archivo
End Sub
End Sub
03/08/12 Ing. Diosa Pérez 18
19. Mostrar la información de un Archivo
1. Apertura del archivo (Si no esta abierto)
1. Apertura del archivo (Si no esta abierto)
•• Definir la estructura de tipo registro en General de un formulario, o
Definir la estructura de tipo registro en General de un formulario, o
en un módulo.
en un módulo.
•• Definir una variable de tipo registro en General de un formulario, o
Definir una variable de tipo registro en General de un formulario, o
en un módulo, o definir dicha variable en el procedimiento.
en un módulo, o definir dicha variable en el procedimiento.
•• Abrir propiamente dicho el archivo ‘‘OPEN
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
3. Hacer un ciclo para leer los datos del archivo e imprimir los registros
del archivo por pantalla
del archivo por pantalla
‘‘For i=1 to n
For i=1 to n
‘‘Get #1,i, reg
Get #1,i, reg
4.
4. Cerrar el archivo ‘‘Close
Cerrar el archivo Close
5.
5. Finalizar el proceso
Finalizar el proceso
03/08/12 Ing. Diosa Pérez 19
20. Mostrar la información de un Archivo
General
General
Private Sub Imprimir_Click()
Private Type Registro
Private Type Registro
Dim i as integer ced as string*10
ced as string*10
'Apertura del archivo (sino se hizo en Form_Load())nom as string*30
nom as string*30
Open "Alumno.dat" For Random As #1 Len = Len(reg)
nota as single
nota as single
'Calculo del número de registro
End Type
End Type
n = LOF(1) Len(reg)
Dim Reg as registro
Dim Reg as registro
Label1.caption=“Cedula Nombre Nota"
Dim n as integer
Dim n as integer
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 archivo
End Sub
03/08/12 Ing. Diosa Pérez 20
21. Ejercicios Propuestos
Elabore una aplicación en Visual Basic que presente
Elabore una aplicación en Visual Basic que presente
mediante un objeto lista los siguientes procedimientos
mediante un objeto lista los siguientes procedimientos
generales
generales
Inclusión: permite crear el archivo Obra con la
Inclusión: permite crear el archivo Obra con la
siguiente estructura de registro:
siguiente estructura de registro:
Código de la Obra
Código de la Obra
Nombre de la Obra
Nombre de la Obra
Tipo de Obra (1. Construcción 2. Mantenimiento)
Tipo de Obra (1. Construcción 2. Mantenimiento)
Fecha de inicio (Formato: dd/mm/aaaa)
Fecha de inicio (Formato: dd/mm/aaaa)
Costo de la Obra
Costo de la Obra
Mostrar: permite mostrar todos los registros del
Mostrar: permite mostrar todos los registros del
archivo
archivo
Salir: finaliza la aplicación
Salir: finaliza la aplicaciónPérez
03/08/12 Ing. Diosa 21