Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2004
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 24
Julià T. Va por buen camino
Tal y como veo yo como funciona:
Código:
  j:=posicion(reg.Nombre);
        if j=-1 then
        begin
             seek(arch,filesize(arch));
             write(arch,reg);
             //si j=-1 se añade 1 registro al final del fichero
        end
        else
        begin
            seek(arch,j);
            write(arch,reg);
             //si    j<>-1 se cambia el registro j por el nnuevo
        end;
En ningun caso se añaden 2 registros como indicas.
Responder Con Cita
  #2  
Antiguo 25-01-2004
nahuel nahuel is offline
Registrado
 
Registrado: ene 2004
Posts: 6
Poder: 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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:14:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi