Ver Mensaje Individual
  #7  
Antiguo 14-09-2012
WkaymQ48 WkaymQ48 is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 43
Reputación: 0
WkaymQ48 Va por buen camino
Si la longitud de los campos es fija, y podemos rellenar los huecos con espacios, prueba con esto:
Código Delphi [-]
type
  TPerson = packed record
     DNI: array[0..8] of AnsiChar;
     Nombre: array[0..39] of AnsiChar;
  end;


var
  Person: TPerson;
  Nombre: AnsiString;
  f1: TextFile;
  f2: file;
begin
  // Rellenamos de espacios en blanco todo el record
  FillChar(Person,SizeOf(TPerson),#32);
  // Metemos el DNI
  move(PAnsiChar('12345678Z')^,Person.DNI,9);
  // Metemos el Nombre  desde una variable, para ver asi los dos metodos
  Nombre:= 'Pepe Perez';
  move(PAnsiChar(Nombre)^,Person.Nombre,Length(Nombre));
  // En ambos casos hay que asegurarse de que el tamaño del texto no es mayo que el del array

  //Para guardarlo en un fichero todo junto, tenemos dos metodos
  AssignFile(f1,'E:\1.txt');
  Rewrite(f1);
  Writeln(f1,Copy(PAnsiChar(@Person),1,SizeOf(TPerson)));
  CloseFile(f1);

  AssignFile(f2,'E:\2.txt');
  Rewrite(f2,1);
  BlockWrite(f2,Person,Sizeof(Person));
  CloseFile(f2);
end.
Responder Con Cita