ARCHIVOS ALEATORIOS

Ver el tema anterior Ver el tema siguiente Ir abajo

ARCHIVOS ALEATORIOS

Mensaje  MARIEL_ID418 el Miér Ene 21, 2009 3:35 am

ARCHIVOS ALEATORIOS

Son archivos que pueden contener datos tipo integer, real o record. Para declarar un archivo se procede de la siguiente manera:

Type

Nombrearchivo = file oftipo de datos

Ejemplo:

Type

Nombres = file of string[60];

Var

Nom: Nombres;

8.3.1 Creación de un archivo tipificado

Para crear un archivo se utilizan las sentencias Assign la cual crea el archivo y Rewrite para abrir el archivo.

La sintaxis es la siguiente:

Assign (f,nombre);

f: Nombre interno del archivo dentro del programa.

nombre: Nombre externo con el que se conoce al archivo por el sistema operativo.

La operación Assign establece una correspondencia entre la variable tipo archivo con un archivo externo situado en disco.

8.3.1 Apertura de un archivo

Luego de haber sido asignado, el archivo debe ser abierto. Esta operación se realiza por medio de uno de los dos procedimientos predefinidos: rewrite y reset.

8.3.1.1 Reset

Abre un nuevo archivo existente para una operación de lectura. Si se intenta llamar a Reset y el archivo especificado no existe, se producirá un error de E/S (entrada/salida).

Sintaxis:

Reset (NombreArch);

8.3.1.2 Rewrite

Crea y abre un nuevo archivo. Si el archivo ya existe, Rewrite borra su contenido; en caso contrario, el archivo queda abierto para una operación de escritura.

Sintaxis:

Rewrite (f);

Existen algunos aspectos importantes que se deben tomar en cuenta al utilizar la sentencia Rewrite:

- Si al abrir el archivo de texto, con assign y reset, ya existe en el disco, la sentencia Rewrite lo rescribirá, en otras palabras, "se perderT el archivo contiguo.

- Por el contrario, las sentencias assign y rewrite suponen la existencia del archivo llamado en el disco. Si este archivo no existe, las sentencias anteriores producirán errores de ejecución.

El siguiente programa define un tipo registro (cliente) y a continuación rellena (pone valores en los campos) en la variable correspondiente. Otra variable del mismo tipo se asigna a la primera variable y los campos de la segunda variable se imprimen uno a uno.

Program Visualiza_Registros;

Type

Datos = record

Nombre : String [80];

Direccion : String [80];

Edad : Integer;

Saldo : Real

End;

Var

Aux, Cliente : Datos;

Begin

Write (`Digite el nombre del cliente: `);

Readln (Cliente.Nombre);

Cliente.Dirección := `Calle El Último Grito´;

Write (`Digite la edad del cliente: `);

Readln (Cliente.Edad);

Cliente.Saldo := 245320;

Aux := Cliente; (* Transfiere los datos al registro Aux *)

(* Visualización de los campos de Aux *)

Writeln (`Nombre: `, Aux.Nombre);

Writeln (`Dirección: `, Aux.Direccion);

Writeln (`Edad: `, Aux.Edad:1);

Writeln (`Saldo: `, Aux.Saldo:1:1);

End.

Este método de lectura/escritura campo a campo es engorroso. Pascal proporciona la sentencia with que facilitará el proceso de lectura/escritura de los registros.

8.3.2 - 8.3.3 Manipulación de archivos tipificados y funciones

8.3.2.1 Escritura de un archivo

Una vez que se ha abierto el archivo para escritura, las sentencias write y writeln sirven para escribir datos en el nuevo archivo.

Sintaxis:

Write (f,v1,v2,...);

f es una variable tipo archivo.

v1,v2,... son variables del tipo de datos.

Ejemplos:

1. Write (demo,´Esto es una prueba de escritura´);

Writeln (demo,´y esta es la siguiente prueba´);

2. Var NombreArch : string[60];

archtex : text;

...

...

Write (`Nombre de archivo´);

Readln (NombreArch);

Assign (Archtex,NombreArch);

Reset (Archtex);

8.3.2.2 Lectura de un archivo

La lectura de un archivo se efectúa mediante las sentencias read o readln.

Sintaxis:

Read (f,v1,v2,...);

f es una variable tipo archivo.

v1,v2,... son variables del tipo de datos.

Ejemplo:

Var

Horas : Real;

Archivo : Text;

Mensaje : string [30];

Begin

Assign (Archivo,´Demo´);

Reset (Archivo);

...

...

Readln (Archivo,Mensaje,Horas);

End.

8.3.2.3 Cierre de un archivo

Para cerrar un archivo se utiliza la siguiente sintaxis:

Close (Nombrearchivo);

MARIEL_ID418

Mensajes : 6
Fecha de inscripción : 01/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.