Ver Mensaje Individual
  #1  
Antiguo 30-03-2009
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Reputación: 18
voldemmor Va por buen camino
Exclamation Leer un Archivo Binario

hola amigos estoy realizando un sistema que debo intercambiar informacion entre dos programas que estan separados.
Buscando me di con el manejo de archivos binarios, me parecio facil, mas que manejar xml,

bueno ya creo la funcion para el archivo que tengo que intercambiar.
Código Delphi [-]
type
  TEstudiante = record
  codigo_plantel  :String[10];
  acta            :String[5];
  nombres         :String[70];
  cedula          :String[11];
  sexo            :String[1];
  nota            :String[2];
  nota_letras     :String[15];
  fecha           :TDate;
  observaciones   :String[70];
  titulo_tipo     :String[20];
  anio            :String[10];
  end;


//GUARDAR

procedure TForm1.BitBtn1Click(Sender: TObject);
var
estudiante : TEstudiante;
F         : File of TEstudiante;
ii:integer;
begin
ii:=1;
if SaveDialog1.Execute then
begin
AssignFile( F, SaveDialog1.FileName );
Rewrite( F );
while (sgAlumnos.Cells[0,ii] <> '')and(sgAlumnos.Cells[0,ii] <> ' ')or(ii=201)do
begin
 with estudiante do
 begin
  codigo_plantel := txtcodigo.Text;
  acta := sgAlumnos.Cells[0,ii];
  nombres := sgAlumnos.Cells[1,ii];
  cedula := sgAlumnos.Cells[2,ii];
  sexo :=sgAlumnos.Cells[3,ii];
  nota := sgAlumnos.Cells[4,ii];
  nota_letras := NotaCuantitativa(StrToInt(sgAlumnos.Cells[4,ii]));
  fecha := StrToDate(sgAlumnos.Cells[5,ii]);
  observaciones := sgAlumnos.Cells[6,ii];
  titulo_tipo := 'PRIMARIA';
  anio := mtxtanio.Text;
 end;
 Write( F, estudiante );
 ii:=ii+1;
end;
CloseFile( F );
end;

end;

como no es tan grande el archivo no uso buffer.

el problema es que no he podido realizar el proceso inverso. leer el archivo binario y analizar los datos registro a registro.

he probado y solo puedo abrir y leeo el primer registro
Código Delphi [-]
//leer

procedure TForm1.Button1Click(Sender: TObject);
var
estudiante : TEstudiante;
F         : File of TEstudiante;
begin
if OpenDialog1.Execute then
begin
  AssignFile( F, OpenDialog1.FileName );
  Reset( F );
  Read( F, estudiante );
   ShowMessage(estudiante.nombres);
  // Cerramos el fichero
  CloseFile( F );

end;
end;


espero que podais ayudar con esto.

Ho dadme otra opción
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita