/*--------------------------------------------------------------------
 * FICHERO:  MmoEscBl.c
 * OBJETIVO: Definir la funcin Mmo_EscribeBloque()
 * AUTOR:    Pedro Reina
 * FECHA:    X.12.7.1995
 *------------------------------------------------------------------*/

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

#include "Memo.h"

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

/*--------------------------------------------------------------------
 * FUNCION:  Mmo_EscribeBloque()
 * OBJETIVO: Grabar el bloque en memoria al fichero
 * ENTRADAS: Un objeto memo
 * SALIDAS:  Lgica, que indica que todo ha ido bien
 * EJEMPLO:  Mmo_EscribeBloque ( Dato )
 * ALGORITMO:
 *      Si hay algn octeto en memoria
 *        Grabar el bloque en el fichero
 *        Limpiar el bloque en memoria
 *        Incrementar el nmero de bloque
 *        Si el nmero de bloque es mayor que el disponible
 *          Actualizar disponible
 *------------------------------------------------------------------*/
logico Mmo_EscribeBloque (Memo)
memo Memo;
  {
  logico Respuesta = SI;
  
  if ( Mmo_Posicion(Memo) )
    {
    Respuesta = Fch_EscribeOcteto (Mmo_Fichero(Memo), Mmo_Dato(Memo), 
                                   MMO_TAMANOBLOQUE);
    Mmo_Limpia (Memo);
    Mmo_IncrementaNumBloque(Memo);
    if ( Mmo_NumeroBloque(Memo) > Mmo_Disponible(Memo) )
      { 
      Mmo_PonDisponible (Memo, Mmo_NumeroBloque(Memo)); 
      Mmo_PonModificado (Memo, SI);
      }
    }
    
  return ( Respuesta );
  }