PDA

Ver la Versión Completa : Detectar enteros y caracteres en un edit


creus
09-03-2007, 09:35:42
Hola a todos,

Necesitaria poder detectar que en un mismo edit me escribieran números enteros y caracteres a la misma vez.
Tengo una ligera idea de como detectar, por ejemplo la vocal 'a', pero no logro realizar la combinación de caracter y númerico a la misma vez.

Adjunto el código para recorrer el edit y detectar 'a'.

for index:=1 to length(contra) do
begin
if (contra[index]) = ('a') then
begin
vocal:=(vocal+1);
end;
end;


Gracias a todos de nuevo

ElKurgan
09-03-2007, 10:21:56
No se si te he entendido bien, pero si este es el caso, esto te podría ayudar a hacer lo que buscas:


procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
voc, conso, num, blanco: Integer;
contra: string;
begin
voc := 0;
conso := 0;
num := 0;
blanco := 0;
if Edit1.Text = '' then exit;
contra := UpperCase(Edit1.Text);
for i := 1 to length(contra) do
begin
if (contra[i] in ['A','E','I','O','U']) then
inc(voc)
else if (contra[i] in ['0'..'9']) then
inc(num)
else if (contra[i] in
['B'..'D', 'F'..'H', 'J'..'N', 'P'..'T','V'..'Z', 'Ñ']) then
inc(conso)
else if (contra[i] = ' ') then
inc(blanco);
end;
ShowMessage(Format('Vocales: %d ' + #13 +
'Consonantes: %d ' + #13 +
'Numeros: %d ' + #13 +
'Blancos: %d', [voc, conso, num, blanco]) );
end;


Un saludo

LordRF
09-03-2007, 23:29:08
Hola,

si solo quieres saber si tienen o no tienen lo puedes resolver asi:
function isInteger(Value: string): boolean;
begin
Result := True;
try
StrToInt(Value)
except
Result := False
end
end;

creus
10-03-2007, 10:22:08
Gracias a todos por la ayuda, al final con un poco de cada uno lo he resuelto de la siguiente forma



contra:=EdtNoupass.Text;
car:=0;
num:=0;

for index:=1 to length(contra) do
begin
if (contra[index] in ['0'..'9']) then
inc(num)
else if not (contra[index] in ['0'..'9']) then
inc(car)
end;
ShowMessage(Format('NUMEROS: %d ' + #13 + 'CARACTERS: %d ',[car, num]) );