Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Detectar enteros y caracteres en un edit (https://www.clubdelphi.com/foros/showthread.php?t=41193)

creus 09-03-2007 09:35:42

Detectar enteros y caracteres en un edit
 
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'.
Código Delphi [-]
 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:

Código:

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:
Código Delphi [-]
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

Código Delphi [-]
 
   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]) );


La franja horaria es GMT +2. Ahora son las 22:01:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi