Ver Mensaje Individual
  #1  
Antiguo 08-11-2007
JosepZ JosepZ is offline
Miembro
 
Registrado: oct 2007
Posts: 20
Reputación: 0
JosepZ Va por buen camino
Cargar array of char de un archivo binario

Tengo que mostrar los datos de un archivo binario, del cual conozco su estructura, en un memo.

Todo funciona bien hasta que tengo que mostrar un dato de tipo array of char de 34 bytes, en ese momento en el memo se carga una linea vacía.

Utilizo este código:

---------Declaracion del tipo-------------
Type Tpgmf = record
//Header block
fileprint:smallint;
version:smallint;
count:integer;
//Info Block
Blockfingerprint:smallint;
BlockVersion:smallint;
RecordCount:integer;
RecordSize:integer;
//General info block
Checksum:Longword;
CourseName:string[34]; <----Uso esta para el char de 34bytes
....

var
Form1: TForm;
archivo:file of Tpgmf;

...

-------lectura del archivo y escritura en el memo------

procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.execute then
begin
assignfile(archivo,opendialog1.filename);
filemode:=FMOpenRead;
Reset(archivo);
Read(archivo, pgmf);
Memo1.lines.add('fileprint:'+inttostr(pgmf.fileprint));
Memo1.lines.add('Version:'+inttostr(pgmf.version));
Memo1.lines.add('Count:'+inttostr(pgmf.count));
Memo1.lines.add('Blockfingerprint:'+inttostr(pgmf.Blockfingerprint));
Memo1.lines.add('BlockVersion:'+inttostr(pgmf.BlockVersion));
Memo1.lines.add('RecordCount:'+inttostr(pgmf.RecordCount));
Memo1.lines.add('RecordSize:'+inttostr((pgmf.RecordSize)));
Memo1.lines.add('CheckSum:'+currtostr(pgmf.CheckSum));
Memo1.lines.add('CourseName:'+pgmf.CourseName); <--- Esta me pone la linea vacía

...

¿Que estoy haciendo mal?¿Cual es la forma correcta de hacerlo?

Gracias
Responder Con Cita