viernes, 4 de marzo de 2011

FICHERO CLASICO CON DELPHI

Delphi puede trabajar con ficheros tipicos de pascal (.DAT). Voy a poner un ejemplo que maneja un fichero binario tipico, pero os adelanto que yo solo usaría este tipo de ficheros en Delphi, con ficheros antiguos que me encontrara y que no se pudieran convertir a ningún formato de base de datos. Para un fichero nuevo usaría una base de datos por ejemplo del tipo .dbf u otro.
De todos modos ahí va el ejemplo. He comenzado un proyecto nuevo y he preparado un ficha como la de la figura: clasico1.jpg (24659 bytes)
unit clasico;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;

type
Tform1 = class(TForm)
titulo: TLabel;
Label1: TLabel;
num: TEdit;
Label2: TLabel;
nomb: TEdit;
jkhk: TLabel;
sex: TRadioGroup;
Label3: TLabel;
domi: TEdit;
Label4: TLabel;
loca: TEdit;
Grabar: TButton;
Cerrar: TButton;
comenzar: TButton;
Panel1: TPanel;
anterior: TButton;
siguiente: TButton;
procedure CerrarClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure GrabarClick(Sender: TObject);
procedure comenzarClick(Sender: TObject);
procedure siguienteClick(Sender: TObject);
procedure anteriorClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

type datos=record
numero:integer;
nombre:string[30];
sexo:char;
domicilio:string[25];
localidad:string[15];
end;

var
form1: Tform1;
registro:datos;
fichero:file of datos;

implementation

{$R *.DFM}


procedure leer;
begin
    read(fichero,registro);
    with form1 do
    begin
        num.text:=inttostr(registro.numero);
        nomb.text:=registro.nombre;
        domi.text:=registro.domicilio;
        loca.text:=registro.localidad;
        if registro.sexo='m' then
            sex.itemindex:=0
        else
            sex.itemindex:=1;
        end;
end;

procedure Tform1.CerrarClick(Sender: TObject);
begin
    close;
end;

procedure Tform1.FormCreate(Sender: TObject);
begin
assignfile(fichero,'alumno.dat');
rewrite(fichero);
end;

procedure Tform1.GrabarClick(Sender: TObject);
begin
// muevo los valores de los controles al registro
with registro do
begin
    numero:=strtoint(num.text);
    nombre:=nomb.text;
    if sex.itemindex=0 then
        sexo:='M'
    else
        sexo:='V';
    domicilio:=domi.text;
    localidad:=loca.text;
end;
write(fichero,registro);
num.clear;
nomb.clear;
sex.itemindex:=-1;
domi.clear;
loca.clear;
num.setfocus;
end;

procedure Tform1.comenzarClick(Sender: TObject);
begin
     reset(fichero);
    leer;
end;


procedure Tform1.siguienteClick(Sender: TObject);
begin
if not eof(fichero) then
    leer
else
    showmessage('Se ha alcanzado el fin de fichero');
end;

procedure Tform1.anteriorClick(Sender: TObject);
begin
if filepos(fichero)>1 then
begin
    seek(fichero,filepos(fichero)-2);
    leer;
end
else
    showmessage('Es el primer registro');
end;

end.

No hay comentarios:

Publicar un comentario

Con la tecnología de Blogger.

Busqueda

Vistas de página en total

Sabias que?

chat

Popular Posts