/*--------------------------------------------------------------------
 * FICHERO:  MmoEsTex.c
 * OBJETIVO: Definir la funcin Mmo_EscribeTexto()
 * AUTOR:    Pedro Reina
 * FECHA:    M.11.7.1995
 *------------------------------------------------------------------*/

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

#include "Memo.h"

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

/*--------------------------------------------------------------------
 * FUNCION:  Mmo_EscribeTexto()
 * OBJETIVO: Escribir una cadena de texto en un fichero memo
 * ENTRADAS: El objeto memo y la cadena
 * SALIDAS:  Lgica, que indica si todo ha ido bien
 * EJEMPLO:  Mmo_EscribeTexto ( Dato, Anotacion )
 * NOTAS:    1. El puntero de fichero debe estar en la posicin correcta
 *           2. Los fines de lnea en la cadena se deben indican con 
 *              el carcter '\r'
 * ALGORITMO:
 *      Limpiar el bloque en memoria del objeto memo
 *      Ir escribiendo caracteres
 *        (El carcter '\r' se convierte en la pareja 13 y 10
 *        porque el MS-DOS necesita dos caracteres para sealar
 *        el fin de lnea)
 *      Escribir el fin de registro
 *      Escribir el bloque en memoria
 *------------------------------------------------------------------*/
logico Mmo_EscribeTexto (Memo, Texto)
memo   Memo;
cadena Texto;
  {
  entero i;
  logico Sigue = SI;

  Mmo_Limpia (Memo);
  
  for ( i=0 ; Texto[i] && Sigue ; i++ )
    {
    if ( Texto[i] == '\r' )
      {
      Sigue = Mmo_Anota (Memo, 13);
      Sigue = Mmo_Anota (Memo, 10);
      }
    else  { Sigue = Mmo_Anota (Memo, (octeto)Texto[i]); }
    }
  
  if ( Sigue )
    {
    Mmo_Anota (Memo, 26);  /* Control-Z, fin de registro */
    Sigue = Mmo_EscribeBloque (Memo);
    /* Los bloques anteriores los ha escrito Mmo_Anota() */
    }
    
  return ( Sigue );
  }
