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.