Ver Mensaje Individual
  #5  
Antiguo 25-01-2004
nahuel nahuel is offline
Registrado
 
Registrado: ene 2004
Posts: 6
Reputación: 0
nahuel Va por buen camino
muchas gracias a todos por haberse molestado en tratar de ayudarme, les comento que ya encontre cual era el problema, como decis vos julia T , en el procedimiento de guardar no habia ningun error, el problema estaba en el procedimiento de posicion que era el que se fijaba si el nombre ya existia o no, y de acuerdo a eso sobreescribia el existente o lo agregaba al final , respectivamente, como la variable para leer los registros era del tipo global, siempre me cambiaba el nuevo registro con el primero que leia para verificar si existia o no, gracias a los watches me pude dar cuenta.

Código:
function posicion(n:string40):integer;
var
   res:boolean;
begin
     res:=false;
     seek(arch,0);
     while not eof(arch) and not res do
     begin
          read(arch,reg);// aca estaba el problema
          res:=AnsiUpperCase(reg.Nombre)=AnsiUpperCase(n);
     end;
     if res then
        posicion:=filepos(arch)-1
     else
         posicion:=-1;
end;
entonces lo que hice fue poner una variable local al procedimiento que sea la que lea los registros y listo.
Responder Con Cita