Sei sulla pagina 1di 5

GRABACION Y LECTURA DE ARCHIVOS EN DISCO (PASCAL) | ... http://www.icomputo.com/content/grabacion-y-lectura-de-archivos-en-...

Buscar
icomputo.com
Tecnologías de la información

Buscar Your IP: 190.43.1.244

Buscar en este sitio:


locker programing estructuras Foros de Consulta
Programacion
C#
GRABACION Y LECTURA DE HTML
ARCHIVOS EN DISCO Java
(PASCAL) PHP
ASP
Articulos FreePascal C
CSS
GRABACION Y LECTURA DE FreePascal
ARCHIVOS EN DISCO. JavaScript
XML
Como ya se menciono grabar y lectura de registros
Software
o estructuras a renglones o registros de archivos en
Microsoft Excel
disco, son los procesos mas comunes y frecuentes
que se pueden realizar con un archivo de disco. Microsoft Word
Microsoft PowerPoint
GRABACION DE UNA ESTRUCTURA A UN
ARCHIVO EN DISCO Adobe Photoshop
CorelDraw
prog17.pas
OpenOffice.org Writer
Sistemas Operativos
program prog17;
Linux
uses crt; Windows XP
Bases de datos
type Juegos
Noticias
alumnos = RECORD
Ecologia
clave:integer; Informatica-Internet
Contacto
nombre:string[30];

estatura:real; Inicio de sesión

end; Nombre de usuario: *

var
Contraseña: *
alumno:alumnos;

archivo: file of alumnos;


Crear cuenta nueva
ren:integer;
Solicitar nueva contraseña
BEGIN

clrscr;

(* creando y abriendo el archivo *)

assign(archivo,'c:\prog\alumnos.dat');

rewrite(archivo);

1 de 5 26/05/2011 21:45
GRABACION Y LECTURA DE ARCHIVOS EN DISCO (PASCAL) | ... http://www.icomputo.com/content/grabacion-y-lectura-de-archivos-en-...

(* ciclo para capturar y grabar tres registros *)

for ren:= 1 to 3 do

begin

(* capturando registro *)

write('dame clave : ');readln(alumno.clave);

write('dame nombre : ');readln(alumno.nombre);

write('dame estatura : ');readln(alumno.estatura);

(* grabando el registro al archivo *)

write(archivo, alumno);

end;

(* cerrando archivo y avisando *)

close(archivo);

writeln;writeln;

writeln('REGISTROS INSERTADOS');

readln;

END.

corrida:

La unica instrucion nueva es:


write(archivo,alumno);
Como se observa ocupa 2 parametros que son:
El alias del archivo y el registro.
POR SUPUESTO QUE USTEDES NO DEBEN USAR
CICLO FOR SINO UN CICLO WHILE Y ESTARLE
PREGUNTANDO AL USUARIO SI QUIERE
CAPTURAR Y GRABAR OTRO REGISTRO.
AGREGAR NUEVOS REGISTROS
El siguiente procedimiento nos permitira agregar
nuevos registros a un archivo existente, recordar
que rewrite borra un archivo si ya existe;
Prog18.pas

program prog18;

uses crt;

type

alumnos = RECORD

2 de 5 26/05/2011 21:45
GRABACION Y LECTURA DE ARCHIVOS EN DISCO (PASCAL) | ... http://www.icomputo.com/content/grabacion-y-lectura-de-archivos-en-...

clave:integer;

nombre:string[30];

estatura:real;

end;

var

alumno:alumnos;

archivo: file of alumnos;

BEGIN

clrscr;

(* creando y abriendo el archivo *)

assign(archivo,'c:\prog\alumnos.dat');

reset(archivo);

(* moviendo apuntador al final del archivo existente *)

seek(archivo,filesize(archivo));

(* capturando registro *)

write('dame clave : ');readln(alumno.clave);

write('dame nombre : ');readln(alumno.nombre);

write('dame estatura : ');readln(alumno.estatura);

(* grabando el registro al archivo *)

write(archivo, alumno);

(* cerrando archivo y avisando *)

close(archivo);

writeln;writeln;

writeln('NUEVO REGISTRO INSERTADO');

readln;

END.

Corrida:

Las instrucciones nuevas son:


Reset(archivo), abre el archivo PERO EL
ARCHIVO YA DEBE EXISTIR ya sea con el
programa de creacion (prog16.pas) o con el de
grabacion de registros (prog17.pas), si el archivo no
existe, reset manadara un error de IO.

3 de 5 26/05/2011 21:45
GRABACION Y LECTURA DE ARCHIVOS EN DISCO (PASCAL) | ... http://www.icomputo.com/content/grabacion-y-lectura-de-archivos-en-...

Seek(archivo,filesize(archivo)) esta instruccion


mueve el apuntador o puntero al final del archivo en
disco.
Otra vez por cada registro estamos grabando 38
bytes de informacion, la string de 30 y 8 bytes por el
entero y el real, ademas recordar que al cerrarse el
archivo pascal le aumento 1 byte con la marca o
simbolo de fin de archivo (EOF), por esta razon si
ustedes desde msdos ven el archivo, msdos les
avisa que tiene 39 bytes.
Filesize(archivo) es otra funcion de archivos que
nos regresa cuantos bytes tiene el archivo en este
caso 39.
Seek nos posiciona en el byte 39, que es
precisamente la marca de EOF, la sigueinte
escritura de archivos de 38 bytes, empezara
sobreescribiendo la marca EOF, que es realmente lo
que se quiere realizar.
LECTURA DE REGISTROS
Prog19.pas

program prog19;

uses crt;

type

alumnos = RECORD

clave:integer;

nombre:string[30];

estatura:real;

end;

var

alumno:alumnos;

archivo: file of alumnos;

BEGIN

(* creando y abriendo el archivo *)

assign(archivo,'c:\prog\alumnos.dat');

reset(archivo);

(* iniciando ciclo de lectura de registros en archivo *)

while not(EOF(archivo)) do

begin

clrscr;

READ(archivo,alumno);

write('clave : ');writeln(alumno.clave);

write('nombre : ');writeln(alumno.nombre);

write('estatura : ');writeln(alumno.estatura:0:2);

write('<enter> para continuar');readln;

end;

4 de 5 26/05/2011 21:45
GRABACION Y LECTURA DE ARCHIVOS EN DISCO (PASCAL) | ... http://www.icomputo.com/content/grabacion-y-lectura-de-archivos-en-...

(* cerrando archivo *)

close(archivo);

readln;

END.

corrida:

Las instrucciones nuevas son:


while not(EOF(archivo)) do
NOT(EOF), se esta indicando al compilador que lea
los registros mientras no se encuentre la marca o
simbolo de fin de archivos (END OF FILE).
READ(archivo,alumno);
Funcion complementp de write, read lee el archivo y
carga el registro.

Temas similares
EDITAR O MODIFICAR LOS REGISTROS DE
ARCHIVOS EN DISCO (PASCAL)
CREACION, LECTURA Y GRABACION DE
ARCHIVOS DIRECTOS EN DISCO (PASCAL)
FILTROS O CONDICIONES DE ARCHIVOS EN
PASCAL
BUSQUEDA DE ARCHIVOS EN DISCO
(PASCAL)
OPERACIONES CON CAMPOS DE LOS
REGISTROS DE ARCHIVOS EN PASCAL
BUSQUEDA DE ARCHIVOS DIRECTOS EN
DISCO (PASCAL)
FILTROS CONDICIONES EN ARCHIVOS
DIRECTOS (PASCAL)
BORRAR O ELIMINAR ARCHIVOS EN PASCAL

5 de 5 26/05/2011 21:45

Potrebbero piacerti anche