Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/06/2007, 21:51
pitukilloloco
 
Fecha de Ingreso: mayo-2006
Mensajes: 40
Antigüedad: 18 años
Puntos: 0
Re: Problema con busqueda en ficheros binarios en C

La función fseek mueve el apuntador al archivo de acuerdo al número de bytes que le des. Hay tres maneras de hacerlo, 2 absolutas y una relativa. Las dos absolutas son, ya sea a partir del comienzo del archivo (SEEK_SET) o del final (SEEK_END), y la relativa es de acuerdo a donde esté apuntando en ese momento el apuntador interno del archivo (SEEK_CUR). Esta constante se la das en el tercer parámetro de la función. El número de bytes para que se mueva el apuntador se lo das en el segundo argumento de la función como un valor long int, pero este puede ser negativo o positivo. Si le das un valor positivo el apuntador se moverá hacia adelante, y hacia atrás si le das un valor negativo.

En el ejemplo le doy un valor negativo para que se mueva hacia atrás tantos bytes como ocupa el registro del ejemplo, con esto el apuntador vuelve a apuntar al comienzo del registro que se quiere borrar.

De tu problema, pues lo único que te puedo decir es que trates de aislarlo de manera que sólo quede el código donde tienes el error y lo restante lo pongas en comentarios para que lo depures más fácilmente. Si te fijas el ejemplo que te di si borra bien los registros, entonces de ahí te puedes guiar para que funcione el tuyo.