Hola JuancaDJ.
Otra opción que podrías considerar es usar un
TClientDataSet en memoria y manejarlo como si estuviera conectado a una bd usando los métodos
LoadFromFile y
SaveFromFile para plasmar y recuperar los datos en tu archivo.
Te pongo un ejemplo básico del control de ingreso:
Código Delphi
[-]
...
implementation
var
gFileName : string;
procedure TForm1.FormCreate(Sender: TObject);
var
fld: TField;
cds: TClientDataSet;
begin
cds := ClientDataSet1;
fld := TStringField.Create(cds);
fld.FieldName := 'NAME';
fld.DataSet := cds;
fld := TStringField.Create(cds);
fld.FieldName := 'PASSWORD';
fld.DataSet := cds;
cds.CreateDataSet;
gFileName := ExtractFilePath(Application.ExeName) + 'ARCHIVO.CDS';
if FileExists(gFileName) then
cds.LoadFromFile(gFileName);
cds.Open;
end;
procedure TForm1.btnAceptClick(Sender: TObject);
begin
if not ClientDataSet1.Locate('NAME', EditName.Text, []) then
raise Exception.Create('Nombre de usuario inexistente');
if EditPassword.Text <> ClientDataSet1.FieldByName('PASSWORD').AsString then
raise Exception.Create('Contraseña incorrecta');
ShowMessage('¡ Bienvenido !');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ClientDataSet1.SaveToFile(gFileName);
end;
(*) los campos podes crearlos en tiempo de diseño pero lo hice en ejecución para clarificar.
Me valí de Edits para simplificar el ejemplo, pero no tendrías problemas en beneficiarte usando los controles de la pestaña
DataControls como si el CDS estuviese conectado con una BD.
Saludos