Hola buenas tardes soy nuevo en la programación y en el manejo de Lazarus y estoy haciendo un programa en el cual el usuario dependiendo de la información que ponga en los Edit lo guarde en un archivo txt, todo esto lo hace sin problemas, el problema surge cuando quiero ingresar otro dato, ya que al querer ingresar nuevamente otros datos no me almacena los primeros simplemente los sustituye, espero contar con su ayuda para resolver esto, dejo el código que actualmente estoy usando.
Saludos.
procedure TForm1.Button1Click(Sender: TObject);
var ArcTXT : TextFile;
a : String;
b : String;
s : String;
begin
AssignFile(ArcTXT,'C:\Users\Sistemas\Desktop\ENCUESTA.TXT');
Rewrite(ArcTXT);
s:=Edit1.Text;
b:=Edit2.Text;
a:=Edit3.Text;
WriteLn(ArcTXT,a);
WriteLn(ArcTXT,b);
WriteLn(ArcTXT,s);
CloseFile(ArcTXT);
Te recomiendo que generes un nombre de archivo aleatorio, porque si sobreescribes el archivo, vas a tener solo los datos de la última captura.
Ahora, que si vas a usar el mismo archivo valides que si existe no lo generes de nuevo, que es lo que estás haciendo. SI el archivo existe te vas al final, metes un separador de "registro" y le das append sobre tu archivo. LO que haces con tu código es crear el archivo, lo que borra los datos existentes, y luego escribes de nuevo los datos capturados, previa eliminación de los anteriores.
También te recomiendo que si lo vas a guardar en texto uses un formato separado por algo (pipes, comas, etc), o si te quieres ver apantallador, usa un xml
Saludos!!
Fer
Editado por FerCastro, 31 mayo 2017 - 05:23 .