he aqui una funcion para buscar
espero te sirva, la misma te puede servir para los libros , solo cambiale el tipo de archivo y el tipo de registro...
function BuscaRegistroUsuario(Var AArchivo:TArchivoUsuario ;var TIRegistro:RegistroUsuario ;IDBuscar:Integer):longint;
Var
Encontrado:longint;
Begin
textattr:=14+4*16;
gotoxy(4,25);write('Buscando Registro..');
Encontrado :=-1; {inicializamos Encontrado a -1, valor inexistente}
Seek(AArchivo,0); {Posicionamos al inicio el puntero del archivo}
While not EOF(AArchivo) do {iniciamos ciclode recorrido del archivo}
Begin
Read(AArchivo,TIRegistro); {Leemos el Registro segun posicion del puntero}
IF TIRegistro.Numero = IDBuscar then {Comparamos el n£mero de registo con el numero solicitado}
Begin {si es igual el registro encontrado}
Encontrado:=FilePos(AArchivo)-1; {se envia la posicion del registro hallado}
Seek(AARchivo,FileSize(AArchivo)); {se envia el puntero al final del archivo para terminar ciclo}
End;
End;
IF Encontrado <> -1 then {si Encontrado no es igual a -1 , mandamos el valor de la funcion}
Begin
BuscaRegistroUsuario:=Encontrado;
End
Else {si no fue encontrado regresamos -1 a la busqueda}
Begin
BuscaRegistroUsuario:=-1;
End;
textattr:=0+2*16;
gotoxy(4,25);write(' ');
End;
(*--------------------------------------------------------------------------*)