All pastes #86037 Raw Edit

Unnamed

public text v1 · immutable
·published 2006-07-12 13:28 UTC
rendered paste body
program Practica;

(*

Asignatura: Ficheros y Base de Datos
Curso: 2005-06
1er cuatrimetre

Práctica 1 - Ficheros

Alumnos:
{NIA 1} {Grupo 1} {M/T} {Apellidos 1}, {Nombre 1}
{NIA 2} {Grupo 2} {M/T} {Apellidos 2}, {Nombre 2}
{NIA 3} {Grupo 3} {M/T} {Apellidos 3}, {Nombre 3}

*)

{$APPTYPE CONSOLE}

  uses SysUtils, Ficheros;

(*

Este fichero fuente es un esqueleto para la práctica, y podrá ser modificado
libremente por los alumnos.

Se suministran dos funciones de prueba:
  - Test_FicheroDireccionado
  - Test_FicheroSerial

El programa principal simplemente llama a estas funciones, englobéndolas en
un tratamiento de excepciones, y espera a que pulsemos la tecla ENTER.

*)

procedure Test_FicheroDireccionado ( nombreFichero : String );
  var fichero : TFicheroDireccionado;
  var bloque : TBloque;
begin
  fichero.Abrir(nombreFichero);

  bloque.RellenarCero();
  fichero.EscribirBloque(0,bloque);
  fichero.EscribirBloque(3,bloque); // no devuelve error

  bloque.RellenarRandom();
  fichero.LeerBloque(1,bloque);
  bloque.Mostrar();

  // Descomentar estas líneas para obtener error  
 // bloque.RellenarRandom();
 // fichero.LeerBloque(5,bloque); // sí devuelve error
 // bloque.Mostrar();

  fichero.MostrarEstadisticas();

  fichero.Cerrar();
end;

procedure Test_FicheroSerial ( nombreFichero : String );
  var fichero : TFicheroSerial;
  var bloque : TBloque;
begin
  fichero.Abrir(nombreFichero);

  bloque.RellenarCero();
  fichero.EscribirBloque(bloque);

  fichero.IrAPosicionInicial();
  bloque.RellenarRandom();
  fichero.LeerBloque(bloque);

  fichero.MostrarEstadisticas();

  fichero.Cerrar();
end;

begin
  try
    Test_FicheroDireccionado('c:\temp\direccionado.dat');
    Test_FicheroSerial('c:\temp\serial.dat');
  except
    WriteLn('Se ha producido un error');
    ExitCode:=1;
  end;
  WriteLn('Presione ENTER...');
  ReadLn;
end.