/*--------------------------------------------------------------------
 * FICHERO:  IndAlmCl.c
 * OBJETIVO: Definir la funcin Ind_AlmacenaClave()
 * AUTOR:    Pedro Reina
 * FECHA:    D.30.7.1995
 *------------------------------------------------------------------*/

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

#include "Indice.h"

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

/*--------------------------------------------------------------------
 * FUNCION:  Ind_AlmacenaClave()
 * OBJETIVO: Almacenar una clave en una cadena. Si la clave es demasiado
 *           larga, se recorta; si es demasiado corta, se rellena con
 *           espacios 
 * ENTRADAS: Un ndice, la cadena y la clave
 * SALIDAS:  Ninguna
 * NOTA:     La cadena debe ser suficientemente larga como
 *           para recibir la clave, sin olvidar el espacio
 *           para el NULO
 * EJEMPLO:  Ind_AlmacenaClave ( Agenda, Cadena, Clave )
 *------------------------------------------------------------------*/
void Ind_AlmacenaClave (Indice, Cadena, Clave)
indice Indice;
cadena Cadena, Clave;
  {
  contador Tope, i;
  
  Tope = Min (Ind_LongitudClave(Indice),IND_MAXCLAVE);
  
  if ( Cad_Longitud (Clave) >= Tope )
    { Clave[Tope] = NULO; }
    
  Cad_Copia (Cadena, Clave);
  
  if ( Cad_Longitud(Cadena) < Tope )
    {
    for ( i=Cad_Longitud(Cadena) ; i<Tope ; i++ )
      { Cadena[i] = ' '; }
    Cadena[i] = NULO;
    }  
  }            