Programación General > Delphi

 Ficheros Secuenciales

(1/2) > >>

JMAlonso:
Quisiera añadir en un fichero un nuevo registro, pero lo que me
ocurre es que machaca lo que habia y me añade el nuevo registro.He aqui el codigo


var

  Agenda : TipoListin;
  BackupName: string;
  FileHandle: integer;


begin
  if SaveDialog1.Execute then
  begin
    if FileExists(SaveDialog1.FileName) then
      FileHandle := FileOpen(SaveDialog1.FileName,fmOpenReadWrite)
    else
      begin
        FileHandle := FileCreate(SaveDialog1.FileName);
        FileHandle := FileOpen(SaveDialog1.FileName,fmOpenWrite);
      end;
      Agenda.Nom:=TxtNombre.Text;
      Agenda.Ape2:=TxtApellido.Text;
      Agenda.Telefono:=TxtTfno.Text;
      FileWrite(FileHandle, Agenda,SizeOf(Agenda));
      FileClose(FileHandle);
  end;

   close;
end;


Si alguien sabe algo, se lo agradecere.

Saludos.

Alpha_:
Es que al abrir el archivo como escritura estás borrando lo que tiene.

Deberías hacer esto:
-Abrir un archivo temporal como escritura
-Abrir el original como lectura
-Copiar contenidos desde el archivo original al temporal
-Agregar el nuevo dato al temporal
-Cerrar el original
-Cerrar el temporal
-Eliminar el original
-Cambiarle el nombre al temporal para que tenga el nombre del original

Así, tendrías todo en el nuevo archivo.

JMAlonso:
Muchas gracias, pero yo creia que habia una instruccion tipo append, que
añade al final del fichero.

saludos.

Alpha_:
Pascal no la tiene.

Delphi, sinceramente no recuerdo. No he terminado de explorarlo en tooooooooooooooda su extensión.

Jejej, saludos.

Enko:

--- Cita de: "Alpha_" --- Pascal no la tiene.

Delphi, sinceramente no recuerdo. No he terminado de explorarlo en tooooooooooooooda su extensión.

Jejej, saludos.
--- Fin de la cita ---
Tanto pascal como object pascal tienen Append.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa