Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Ficheros de datos en Delphi



    1. Resumen
    2. Desarrollo
    3. Conclusiones
    4. Bibliografía

    Resumen:

    En este artículo el autor describe como se crean
    y utilizan en Delphi los
    ficheros de datos en formato ASCII y en
    formato binario.

    Introducción:

    El procesamiento de
    datos implica con frecuencia el almacenamiento y
    manipulación de estos en ficheros, término que hace
    referencia a una colección de datos del mismo tipo que
    pueden ser almacenados en un dispositivo auxiliar de
    almacenamiento y a los que podemos acceder cuando sea
    necesario.

    En Delphi los ficheros pueden ser de dos tipos: ficheros
    en formato ASCII o ficheros en formato binario y pueden, a su
    vez, organizarse de dos formas diferentes: en forma secuencial o
    en forma indexada. En un fichero secuencial todos los componentes
    del fichero se almacenan secuencialmente uno después del
    otro.

    En este trabajo se
    aborda cómo se crean y utilizan en Delhi tanto los
    ficheros en formato ASCII como en formato binario organizados
    secuencialmente, ya que para almacenar datos con estructura
    indexada es mucho más cómodo hacerlo usando
    bases de
    datos, las cuales Delphi maneja a la
    perfección.

    Desarrollo:

    Ficheros en formato ASCII.

    Los ficheros en formato ASCII son los más
    sencillos de todos. Se pueden visualizar con el Bloc de Notas de
    Windows y
    suelen llevar extensión txt.

    Un fichero de este tipo puede definirse
    fácilmente declarando al identificador que lo representa
    de tipo texto. Esta
    declaración puede expresarse como:

    Var Nombre del fichero : TextFile

    Para leer o escribir datos en un fichero con formato
    ASCII se deben dar los siguientes pasos:

    1. Indicarle a Delphi que se trata de un fichero de tipo
      texto.
    2. Declarar las variables
      que se usarán para leer o escribir datos en el fichero.
      Estas variables deben ser de tipo String ya que se trata de un
      fichero en formato ASCII.
    3. Indicarle a Delphi como se llama el fichero y con que
      nombre se conocerá en el programa para
      lo cual se emplea la función
      AssignFile.
    4. Se abre el fichero en el modo en el que se desea
      trabajar:
    • Modo lectura. Se
      indica con la orden Reset.
    • Modo escritura
      para añadir datos. Se indica con la orden
      Append.
    • Modo reescritura para crear el fichero y si este
      existía con anterioridad sobrescribirlo. Se indica con
      la orden Rewrite.
    1. Cerrar el fichero una vez concluido el proceso de
      lectura o escritura. Se indica con la orden
      CloseFile.

    Ejemplo:

    Los siguientes procedimientos
    permiten crear el fichero Grupo,
    almacenar en él los nombres de los estudiantes que lo
    integran y recuperar luego el listado.

    Procedure CrearFichero;

    Var

    Datos : TextFile;

    begin

    AssignFile (Datos, 'Grupo.txt');

    Rewrite (Datos);

    CloseFile (Datos);

    end;

    Procedure EscribirDatos (Nombre : String);

    Var

    Datos : TextFile;

    begin

    AssignFile (Datos, 'Grupo.txt');

    Append (Datos);

    Writeln (Datos, Nombre);

    CloseFile (Datos);

    end;

    Procedure LeerDatos;

    Var

    Datos : TextFile;

    I : Integer;

    begin

    AssignFile (Datos, 'Grupo.txt');

    Reset (Datos);

    I := 1;

    While Not Eof (Datos) do

    begin

    Readln (Datos, Nombre[I]);

    Inc (I);

    end;

    CloseFile (Datos);

    end;

    Antes de usarlos, declare el arreglo Nombre de tipo
    String.

    La función Eof permite conocer si se llegó
    o no al final del fichero respondiendo True en caso positivo y
    False en caso contrario.

    Para conocer el número de registros que
    existen en un fichero, se puede utilizar la siguiente
    función:

    Function ContarRegistros : Integer;

    Var

    Cantidad : Integer;

    Datos : TextFile;

    Linea : String;

    begin

    Cantidad := 0;

    AssignFile (Datos, 'Grupo.txt');

    Reset (Datos);

    While Not Eof (Datos) do

    begin

    Readln (Datos, Linea);

    Inc (Cantidad);

    end;

    CloseFile (Datos);

    ContarRegistros := Cantidad;

    end;

    Ficheros en formato binario.

    Los ficheros en formato binario solo pueden ser
    leídos por el programa que los creó o por uno que
    se programe para leerlos. La manera más sencilla de
    definirlos es incluir la definición del fichero como parte
    de una declaración de variable de tipo fichero. La forma
    general de esta declaración es:

    Var Nombre del fichero : File of tipo

    donde tipo se refiere al tipo de dato de los componentes
    individuales del fichero.

    La ventaja con respecto a los ficheros en formato ASCII
    es que se puede contar con dos funciones que no
    existían en estos: FileSize y FilePos.

    La primera de ellas retorna el número de
    registros que existen en el fichero y la segunda la
    posición actual del puntero dentro del fichero.

    Los componentes individuales del fichero pueden ser de
    tipo simple o de tipo estructurado. En este último caso se
    debe declarar primero la estructura de
    datos y luego indicarle al fichero que use esa
    estructura.

    Ejemplo:

    Los siguientes procedimientos permiten crear el fichero
    Información, almacenar en él el
    nombre y el número del carné de identidad de
    un grupo de estudiantes y luego recuperar esa
    información.

    Procedure CrearFichero;

    Var

    Datos : File of TListado;

    begin

    AssignFile (Datos,
    ‘Informacion.fic’);

    Rewrite (Datos);

    CloseFile (Datos);

    end;

    Procedure EscribirDatos (NuevaInformacion :
    TListado);

    Var

    Datos : File of TListado;

    begin

    AssignFile (Datos, ‘Informacion.
    fic’);

    Reset (Datos);

    Seek (Datos,FileSize (Datos));

    Write (Datos, NuevaInformacion);

    CloseFile (Datos);

    end;

    Procedure LeerDatos;

    Var

    Datos : File of TListado;

    I : Integer;

    begin

    AssignFile (Datos, ‘Informacion.
    fic’);

    Reset (Datos);

    For I := 1 to FileSize (Datos) do

    Read (Datos, Listado [I]);

    CloseFile (Datos);

    end;

    Antes de usarlos declare el tipo de dato
    TListado.

    Type

    TListado = Record

    Nombre : String [50];

    NumeroIdentidad : Real;

    end;

    y la variable Listado como un arreglo de tipo
    Tlistado.

    La función Seek permite recorrer el fichero
    avanzando el puntero dentro del mismo.

    Para copiar el contenido de un fichero en otro, se puede
    utilizar el siguiente procedimiento:

    Procedure CopiarFichero;

    Var

    FicheroOrigen, FicheroDestino : File of
    TListado;

    Contenido : TListado;

    begin

    AssignFile (FicheroOrigen,
    ‘Informacion.fic');

    Reset (FicheroOrigen);

    AssignFile (FicheroDestino, 'Copia.fic');

    Rewrite (FicheroDestino);

    While Not Eof (FicheroOrigen) do

    begin

    Read (FicheroOrigen, Contenido);

    Write (FicheroDestino, Contenido);

    end;

    CloseFile (FicheroOrigen);

    CloseFile(FicheroDestino);

    end;

    se puede adaptar el procedimiento anterior para que solo
    copie parte del contenido, estableciendo antes de la
    instrucción Write el criterio de
    validación.

    Ejemplo:

    Para copiar solo los que nacieron en el año 1990,
    el criterio de validación podría ser:

    If Copy (FloatToStr (Contenido.NumeroIdentidad),1,2) =
    '90' then

    por lo que el bloque While quedaría:

    While Not Eof (FicheroOrigen) do

    begin

    Read (FicheroOrigen, Contenido);

    If Copy (FloatToStr (Contenido.NumeroIdentidad),1,2) =
    '90' then

    Write (FicheroDestino, Contenido);

    end;

    Otra función útil en el manejo de ficheros
    es la función FileExists con la que es posible conocer si
    un fichero determinado existe o no.

    Conclusiones:

    La utilización de ficheros de datos facilita el
    intercambio de información entre programas por lo
    que puede ser una buena opción para la entrada y salida de
    la información en nuestras aplicaciones.

    Bibliografía:

    Gottfried, Byron S. Programación en Pascal.– Ciudad
    de la Habana : Editorial Pueblo y Educación,
    1989

    Katrib Mora, Miguel. Lenguajes de
    programación y Técnicas
    de compilación.– Ciudad de la Habana : Editorial Pueblo y
    Educación, 1988

    Curso por correo
    electrónico sobre Borland Delphi.

     

     

    Autor:

    Asistente Juan Antonio Fonseca
    Hernández

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter