#include "cscreen.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
...
/* SetUpper */
int SetUpper(int x,int y,int nColor,int nSize,int bSpecialChr,char *lpszString)
{
CScreen Scr;
unsigned char nMaxx;
unsigned char nMaxy;
int nChr=0;
int bFlag;
int i;
int j;
/* validaciones de posicion donde se va a imprimir el texto ,color,bla bla bla...*/
Scr.GetMaxx(nMaxx);
Scr.GetMaxy(nMaxy);
if (x<1) x=1;
if (x>=nMaxx) x=nMaxx-1;
if (y<1) y=1;
if (y>=nMaxy) y=nMaxy-1;
if ((nColor<0)||(nColor>15)) nColor=15;
if (nSize<0) nSize=0;
if (nSize>((nMaxx+1)-x)) nSize=x-1;
memset(lpszString,' ',nSize);
textcolor(nColor);
i=0;
j=0;
do
{
gotoxy(x+j,y);
do
{
bFlag=0;
lpszString[i]=getch();
/* si presiona ESC o ENTER salir */
if (lpszString[i]==13) bFlag=2;
if (lpszString[i]==27)
{
bFlag=2;
nChr=(int)lpszString[i];
}
/* caracteres validos */
if (lpszString[i]== 8) bFlag=1;
if (lpszString[i]==32) bFlag=1;
if (lpszString[i]==45) bFlag=1;
if (lpszString[i]==95) bFlag=1;
if ((lpszString[i]>=97) && (lpszString[i]<=122))
lpszString[i]=lpszString[i]-32;
if ((lpszString[i]>=48) && (lpszString[i]<=57)) bFlag=1;
if ((lpszString[i]>=65) && (lpszString[i]<=90)) bFlag=1;
/*otros caracteres eventualmente validos(segun el valor parametro correspondiente)*/
if (bSpecialChr)
{
if (lpszString[i]==46 ) bFlag=1;
if (lpszString[i]==47 ) bFlag=1;
if (lpszString[i]==123) bFlag=1;
if (lpszString[i]==125) bFlag=1;
if (lpszString[i]==126) bFlag=1;
if ((lpszString[i]>=33) && (lpszString[i]<=44)) bFlag=1;
if ((lpszString[i]>=58) && (lpszString[i]<=64)) bFlag=1;
if ((lpszString[i]>=91) && (lpszString[i]<=94)) bFlag=1;
}
}/*no deja continuar hastar que ingrese un put.. caracter valido >:<(*/
while (!bFlag);
if ((bFlag==1) && (i<=nSize))/*si por fin ingreso el put.. caracter |:(*/
{/*