Manual de xsEasyC
Entrada de Datos con Formato y Validación

Una de las extensiones que proporciona xsEasyC es la Entrada de Datos a través del Teclado con Formato y Validación. Estas funciones nos permiten realizar captura de datos estableciendo un Formato y realizando la validación correspondiente al tipo de dato que se esté capturando. Las funciones de la librería xstdio que nos permite realizar esta captura con formato y validación son las siguientes:

  • leerCadena
    Función para leer una cadena de texto.
    Esta función utiliza 3 parámetros:
    Caracter *cadena. Este parámetro es donde se depositará lo que el usuario capture. Debe ser una variable de Tipo Cadena.
    Caracter *validos. En este parámetro se indica a la función cuales son los caracteres que serán permitidos en la captura.
    Entero longitud. Este parámetro se utiliza para indicar cuantos caracteres se permitirán en la captura de la cadena.

    Ejemplo:

    // Se define una Variable de Cadena
    Cadena direccionIP="";

    // Se despliega un Mensaje
    Imprimir("Captura Direccion IP :");

    // Se define una variable de Tipo Entero
    Entero resultado;

    // Se ejecuta la lectura de la Cadena con Formato
    resultado = leerCadena(direccionIP,"123456789.",12);

    El Ejemplo anterior realiza la captura de una Cadena, estableciendo que únicamente se permita la captura de números, y que la longitud de la cadena sea como máximo de 12. La función adicionalmente retorna el número de caracteres que fueron capturados; en el ejemplo; este valor es asignado a la variable resultado.

  • leerCadenaFormato
    Función para leer una cadena de texto con formato.
    Esta función utiliza 2 parámetros:
    Caracter *cadena. Este parámetro es donde se depositará lo que el usuario capture. Debe ser una variable de Tipo Cadena.
    Caracter *formato. En este parámetro se indica el formato que deberá en la captura de la Cadena. Este formato utiliza los siguientes CARACTERES para indicar lo que debe de permitirse en la captura:L-Alfabético, N-Numérico A-Alfanumérico X-Cualquiera. Cualquier otro caracter distinto a los indicados, deberá de capturarse como tal.

    Ejemplo:

    // Variable de Cadena
    Cadena telefono="";

    // Mensaje para solicitar captura de datos
    Imprimir("Captura Serial (NN)AAA-NNN-XXXX:");

    // Variable para obtener el número de caracteres capturados
    Entero resultado;
    resultado = leerCadenaFormato(telefono,"(NN)AAA-NNN-XXXX");

    // imprimir la Cadena con mensaje
    imprimirCadena(telefono,"El Serial es: %s",CON_CAMBIO_LINEA);
    imprimirEntero(resultado,"Caracteres Leídos:%i",CON_CAMBIO_LINEA);

    El Ejemplo anterior realiza la captura de una Cadena con un formato para un número serial. Los Símbolos "()-", se deben capturar tal y en la posición que están; y los demas caracteres de acuerdo al formato indicado. Ejemplo de un teléfono capturado:(55)A5C-290-1P#0

  • leerCaracter
    Función para leer un caracter.
    Esta función utiliza 1 parámetro:
    Caracter *validos. En este parámetro se indican cuales caracteres son permitidos en la captura.
    Ejemplo:

    // Mensaje para solicitar un caracter
    Imprimir("Captura un caracter (aeiou):");

    // leer el caracter permitiendo solo vocales
    caracter = leerCaracter("aeiou");

    El Ejemplo anterior realiza la captura de un Caracter y solo permite que el caracter capturado sea una vocal. Es importante mencionar que el caracter capturado NO ES DESPLEGADO en la captura.

  • leerCaracterD
    Función para leer un caracter y desplegarlo.
    Esta función utiliza 1 parámetro:
    Caracter *validos. En este parámetro se indican cuales caracteres son permitidos en la captura.
    Ejemplo:

    // Mensaje para solicitar un caracter
    Imprimir("Captura un caracter:");

    // leer el caracter permitiendo todos
    caracter = leerCaracter(TODOS_CARACTERES);

    El Ejemplo anterior realiza la captura de un Caracter y permite cualquier caracter en la captura. A diferencia de la función anterior, si el caracter capturado es imprimible; este es desplegado en la pantalla.

  • leerClave
    Función para leer una cadena de texto como clave.
    Esta función utiliza 3 parámetros:
    Caracter *cadena. Este parámetro es donde se depositará lo que el usuario capture. Debe ser una variable de Tipo Cadena.
    Caracter *validos. En este parámetro se indica a la función cuales son los caracteres que serán permitidos en la captura.
    Entero longitud. Este parámetro se utiliza para indicar cuantos caracteres se permitirán en la captura de la cadena.

    Ejemplo:

    // Declara la variable
    Cadena clave;

    // Solicita captura de Clave de Ingreso
    Imprimir("Captura tu Clave de Ingreso:");

    // leer la Clave
    leerClave(clave,TODOS_CARACTERES,10);

    // imprimir la Clave
    imprimirCadena(clave,"La Clave capturada es: %s",CON_CAMBIO_LINEA);
    CL;

    El Ejemplo anterior realiza la captura de una Clave, lo cual hace que aparezcan "*" en lugar de los caracteres que se capturen. El máximo número de caracteres que se pueden capturar son 10. La función devuelve el número de caracteres capturados.

  • leerDoble
    Función para leer un valor numérico Doble.
    Esta función utiliza 2 parámetros:
    Entero enteros. Este parámetro se utiliza para indicar cuantos enteros se permitirán en la captura.
    Entero decimales. Este parámetro se utiliza para indicar cuantos valores decimales se permitirán en la captura.

    Ejemplo:

    // Declara la variable
    Doble doble;

    // Solicita captura un valor doble
    Imprimir("Captura un valor para un Peso:");

    // leer el peso
    doble = leerDoble(10,5);

    // imprimir el valor doble capturado
    imprimirDoble(doble,"El Valor del Peso es: %010.5f",CON_CAMBIO_LINEA);
    CL;

    El Ejemplo anterior realiza la captura de un valor numérico Doble, el cual permite 10 números para la parte entera y 5 números para la parte decimal. La función asigna el valor capturado a la variable doble.

  • leerEntero
    Función para leer un valor numérico Entero.
    Esta función utiliza 1 parámetro:
    Entero longitud. Este parámetro se utiliza para indicar cual será la longitud del entero.

    Ejemplo:

    // Mensaje
    Imprimir("Captura Edad:");

    // Declara variable
    Entero edad;

    // Lee el entero de longitud 2
    edad = leerEntero(2);

    // Despliega el Entero Capturado
    imprimirEntero(edad,"La Edad capturada es:%d",CON_CAMBIO_LINEA);
    CL;

    El Ejemplo anterior realiza la captura de una valor numérico para indicar edad con una longitud máxima de 2. La función asigna el valor entero capturado a la variable edad.

  • leerFecha
    Función para leer una fecha.
    Esta función utiliza 2 parámetros:
    Entero formato. Este parámetro si es 0; entonces la fecha deberá se capturada en el siguiente formato:"dd/mm/yyyy", si el valor es 1; el formato de captura permitido será:"mm/dd/yyyy".
    Caracter separador. Este parámetro se utiliza para indicar el caracter que se utilizará como separador entre los días, meses y años.

    Ejemplo:

    // Mensaje
    Imprimir("Captura una Fecha :");

    // Variable de Fecha
    Fecha fecha;
    // Obtiene la Fecha y la asigna a la variable
    cadenaAsignar(fecha,leerFecha(0,'/'));

    // Despliega la Fecha
    imprimirCadena(fecha,"La fecha capturada es:[%s]\n",CON_CAMBIO_LINEA);
    CL;

    El Ejemplo anterior realiza la captura de una fecha con el formato "dd/mm/yyyy" y se asigna el resultado a la variable fecha. Si la fecha capturada no es correcta, la función devolverá "##/##/####".

  • leerFlotante
    Función para leer un valor numérico Flotante.
    Esta función utiliza 2 parámetros:
    Entero enteros. Este parámetro se utiliza para indicar cuantos enteros se permitirán en la captura.
    Entero decimales. Este parámetro se utiliza para indicar cuantos valores decimales se permitirán en la captura.

    Ejemplo:

    // Declara la variable
    Flotante flotante;

    // Solicita captura de un Peso
    Imprimir("Captura un valor para un Peso:");

    // leer el peso
    flotante = leerFlotante(5,2);

    // imprimir el valor flotante capturado
    imprimirFlotante(flotante,"El Valor del Peso es: %010.5f",CON_CAMBIO_LINEA);
    CL;

    El Ejemplo anterior realiza la captura de un valor numérico Flotante, el cual permite 5 números para la parte entera y 2 números para la parte decimal. La función asigna el valor capturado a la variable flotante.