PDA

Ver la Versión Completa : Mascara muy especializada


carlos gonzalez
09-10-2006, 20:34:00
Hola amigos tengo una duda ojala puedan ayudarme, no se si pueda crear una mascara especial
para un edit.

Necesito crear una mascara que cumpla las sig. condiciones.

1.- El string debe de tener 8 caracteres
2.- El primer caracter debe ser 'D','C' o 'P'
3.- El Segundo caracter debe ser una letra entre la 'A' Y la 'Z'
4.- El caracter del 3 al 7 deben de ser numeros
5.- El octavo caracter debe de ser 'A','B','C','E','J','N' o un espacio en blanco

Si alguien sabe si es posible hacer esto, se los agradeceria bastante si lo
comparten conmigo

Su amigo charless.

Lepe
09-10-2006, 22:13:18
Hombre, se puede crear un Parser... pero creo que es demasiado, para lo que dices, puede bastar con algo así:



type
TCharSet = set of Char;

const Primera : TCharSet = ['D','C','P'];
Segunda:TCharSet = ['A'..'Z', 'Ñ'];
numeros:TCharSet = ['0'..'9'];
Ultima :TCharSet = ['A','B','C','E','J','N',' '];

function IsIDFactura(const str:string):Boolean;
var s:string;
begin
Result := length(str) = 8;
s := uppercase(str);
if Result then
Result := (s[1] in Primera) and
(s[2] in Segunda) and
(s[3] in numeros ) and
(s[4] in numeros ) and
(s[5] in numeros ) and
(s[6] in numeros ) and
(s[7] in numeros ) and
(s[8] in Ultima );
end;


Ya tienes una idea, si quieres que se valide mientras se escribe, pues es cuestión de modificarlo.

Saludos