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

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

#include "BaseDato.h"

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

/*--------------------------------------------------------------Olimpo
 * FUNCION:  Bdt_CampoNumero()
 * OBJETIVO: Dar el contenido de un campo a partir de su nmero
 * ENTRADAS: La base de datos, el nmero del campo y una cadena
 *           donde dejar el contenido
 * SALIDAS:  Lgica indicando si el campo existe. La cadena
 *           queda rellena
 * NOTAS:    1. Los campos se numeran a partir de 0
 *           2. La funcin no comprueba la longitud de la
 *              cadena; el programador debe asegurarse de que
 *              es suficientemente larga para contener el 
 *              contenido del campo
 * EJEMPLO:  Bdt_CampoNumero (Agenda,1,Aux)
 * ALGORITMO:
 *      Si el campo existe
 *        Copiar los caracteres del campo pedido en Contenido
 *        Finalizar Contenido con un carcter NULO
 *------------------------------------------------------------------*/
logico Bdt_CampoNumero (Base, Numero, Contenido)
basedato  Base;
contador  Numero;
cadena    Contenido;
  {
  logico   Respuesta = NO;
  contador i, j, k;

  if ( Numero >= 0 && Numero < Bdt_TotalCampo(Base) )
    {
    Respuesta = SI;

    i = 1;                         /* Punto de InfoActual de comienzo */
    for ( k=0 ; k<Numero ; k++ )
      { i += Bdt_LongitudDeCampo(Base,k); }

    j = 0;
    for ( k=0 ; k<Bdt_LongitudDeCampo(Base,Numero) ; k++ )
      { Contenido[j++] = Bdt_InfoActual(Base)[i++]; }

    Contenido[j] = NULO;
    }

  return ( Respuesta );
  }