nahuel
25-01-2004, 00:19:31
hola, este es mi primer post en este foro, queria pedirles ayuda con este codigo ya que lo ejecute paso a paso muchas veces y no logro encontrarle el error, el problema es que siempre me guarda el primer registro, aunque cambie los datos siempre me guarda el primer registro que he cargado,por ejemplo cargo el primer registro con el nombre de "juan" completo los otros datos y cuando agrego otro registro distinto, por ejemplo "pedro" en el archivo se guardan 2 registros "juan" con todos los datos del primer registro cargado. quisas el problema este en que la variable de registro sea global?, desde ya muchas gracias y pido disculpas por no haber leido las recomendaciones de estilo antes de escribir en el foro :)
aca les dejo el codigo:
procedure TForm4.Button2Click(Sender: TObject); //boton guardar
var
cerrar:boolean;
v1,v2,v3,v4,v5,v6,v7,v8,v9:integer;
Comp:TValueRelationship;
fechaactual:TDateTime;
j:integer;
begin
cerrar:=True;
fechaactual:=date;
try
if Edit1.text<>'' then
reg.Nombre:=Edit1.Text;
if Maskedit1.text<>' / / ' then
begin
reg.CLU:=StrToDate(Maskedit1.Text);
mostrar(v1,Comp,fechaactual,reg.CLU,label12);
end;
if Maskedit2.text<>' / / ' then
begin
reg.Port:=StrToDate(Maskedit2.Text);
mostrar(v2,Comp,fechaactual,reg.Port,label13);
end;
if Maskedit3.text<>' / / ' then
begin
reg.Med:=StrToDate(Maskedit3.Text);
mostrar(v3,Comp,fechaactual,reg.Med,label14);
end;
if Maskedit4.text<>' / / ' then
begin
reg.Psi:=StrToDate(Maskedit4.Text);
mostrar(v4,Comp,fechaactual,reg.Psi,label15);
end;
if Maskedit5.text<>' / / ' then
begin
reg.Reinc:=StrToDate(Maskedit5.Text);
mostrar(v5,Comp,fechaactual,reg.Reinc,label16);
end;
if Maskedit6.text<>' / / ' then
begin
reg.Mor:=StrToDate(Maskedit6.Text);
mostrar(v6,Comp,fechaactual,reg.Mor,label17);
end;
if Maskedit7.text<>' / / ' then
begin
reg.AntProv:=StrToDate(Maskedit7.Text);
mostrar(v7,Comp,fechaactual,reg.AntProv,label18);
end;
if Maskedit8.text<>' / / ' then
begin
reg.CredProv:=StrToDate(Maskedit8.Text);
mostrar(v8,Comp,fechaactual,reg.CredProv,label19);
end;
if Maskedit9.text<>' / / ' then
begin
reg.CredCap:=StrToDate(Maskedit9.Text);
mostrar(v9,Comp,fechaactual,reg.CredCap,label20);
end;
except
showmessage('fecha/s invalida/s');
cerrar:=false;
end;
if cerrar then
begin
j:=posicion(reg.Nombre);
if j=-1 then
begin
seek(arch,filesize(arch));
write(arch,reg);
label21.Caption:=intToStr(filesize(arch));//////////////////////debug
label22.Caption:=intToStr(filepos(arch));///////////////////////////
end
else
begin
showmessage('encontrado!');
seek(arch,j);
write(arch,reg);
end;
end;
end;
aca les dejo el codigo:
procedure TForm4.Button2Click(Sender: TObject); //boton guardar
var
cerrar:boolean;
v1,v2,v3,v4,v5,v6,v7,v8,v9:integer;
Comp:TValueRelationship;
fechaactual:TDateTime;
j:integer;
begin
cerrar:=True;
fechaactual:=date;
try
if Edit1.text<>'' then
reg.Nombre:=Edit1.Text;
if Maskedit1.text<>' / / ' then
begin
reg.CLU:=StrToDate(Maskedit1.Text);
mostrar(v1,Comp,fechaactual,reg.CLU,label12);
end;
if Maskedit2.text<>' / / ' then
begin
reg.Port:=StrToDate(Maskedit2.Text);
mostrar(v2,Comp,fechaactual,reg.Port,label13);
end;
if Maskedit3.text<>' / / ' then
begin
reg.Med:=StrToDate(Maskedit3.Text);
mostrar(v3,Comp,fechaactual,reg.Med,label14);
end;
if Maskedit4.text<>' / / ' then
begin
reg.Psi:=StrToDate(Maskedit4.Text);
mostrar(v4,Comp,fechaactual,reg.Psi,label15);
end;
if Maskedit5.text<>' / / ' then
begin
reg.Reinc:=StrToDate(Maskedit5.Text);
mostrar(v5,Comp,fechaactual,reg.Reinc,label16);
end;
if Maskedit6.text<>' / / ' then
begin
reg.Mor:=StrToDate(Maskedit6.Text);
mostrar(v6,Comp,fechaactual,reg.Mor,label17);
end;
if Maskedit7.text<>' / / ' then
begin
reg.AntProv:=StrToDate(Maskedit7.Text);
mostrar(v7,Comp,fechaactual,reg.AntProv,label18);
end;
if Maskedit8.text<>' / / ' then
begin
reg.CredProv:=StrToDate(Maskedit8.Text);
mostrar(v8,Comp,fechaactual,reg.CredProv,label19);
end;
if Maskedit9.text<>' / / ' then
begin
reg.CredCap:=StrToDate(Maskedit9.Text);
mostrar(v9,Comp,fechaactual,reg.CredCap,label20);
end;
except
showmessage('fecha/s invalida/s');
cerrar:=false;
end;
if cerrar then
begin
j:=posicion(reg.Nombre);
if j=-1 then
begin
seek(arch,filesize(arch));
write(arch,reg);
label21.Caption:=intToStr(filesize(arch));//////////////////////debug
label22.Caption:=intToStr(filepos(arch));///////////////////////////
end
else
begin
showmessage('encontrado!');
seek(arch,j);
write(arch,reg);
end;
end;
end;