/*--------------------------------------------------------------------
 * FICHERO:  IndClave.c
 * OBJETIVO: Definir la funcin Ind_Clave()
 * AUTOR:    Pedro Reina
 * FECHA:    V.14.7.1995
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Ficheros de cabecera
 *------------------------------------------------------------------*/

#include "Indice.h"

/*--------------------------------------------------------------------
 * Definicin de funciones
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * FUNCION:  Ind_Clave()
 * OBJETIVO: Decir la clave que corresponde a un item de la
 *           pgina en memoria
 * ENTRADAS: El ndice, el nmero de item y una cadena donde
 *           dejar la clave
 * SALIDAS:  La cadena se modifica y se devuelve
 * NOTAS:    1. Los items se cuentan a partir de 0
 *           2. No se comprueba que el item sea vlido
 *           3. La cadena debe ser suficientemente larga como
 *              para recibir la clave, sin olvidar el espacio
 *              para el NULO
 * EJEMPLO:  Ind_Clave ( Agenda, 2, Clave )
 *------------------------------------------------------------------*/
cadena Ind_Clave (Indice,NumItem,Clave)
indice   Indice;
contador NumItem;
cadena   Clave;
  {
  caracter *Pos;
  contador  i;
  
  Pos = (caracter *) ( Ind_Pagina (Indice) +
                       Ind_Desplazamiento (Indice,NumItem) + 8 );
  
  for ( i=0 ; i<Ind_LongitudClave(Indice) ; i++ )
    { Clave[i] = * Pos++; }
    
  Clave[i] = NULO;  
  
  return ( Clave );
  }