Ver Mensaje Individual
  #15  
Antiguo 19-04-2011
madrid_cr7 madrid_cr7 is offline
Registrado
NULL
 
Registrado: abr 2011
Posts: 9
Reputación: 0
madrid_cr7 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola madrid_cr7.


Si en Edit9.Text tiene que quedar la primera vocal a partir del segundo caracter del apellido, tu código reformado quedaría así:
Código Delphi [-]var i:integer; begin i:= 2; while not (UpCase(Edit1.Text[i]) in ['A','E','I','O','U']) do Inc(i); Edit9.Text:= Edit1.Text[i]; end;

Te explico que es lo que hace: La primera letra hay que ignorarla sea vocal o consonante y a partir de la segunda recorremos la cadena incrementando la varialbe 'i' hasta que encuentra una vocal. Alli termina el ciclo while y por supuesto el valor 'i' tiene la posición de la
primera vocal encontrada a partir del segundo caracter. Esa posición es usada como subindice de Edit1.Text[i] para obtener el caracter
buscado.
La función UpCase convierte a mayúsculas lo que estamos comparando, por que no es lo mismo 'A' que 'a', sin ella tendría que haber echo:
Código Delphi [-] while not (Edit1.Text[i] in ['A','E','I','O','U','a','e','i','o','u']) do

Al finalizar el ciclo while, se asigna a Edit9.Text la vocal encontrada en Edit1.Text[i].

Si hay algo que no te quedó en claro decimelo y lo vamos a ir tratando de aclarar.

Un saludo.
Muchisimas Gracias, ya quedo el programa ya me toma la primer vocal a partir de la segunda letra, gracias por todo me salvaste la vida.


Cita:
Empezado por oscarac Ver Mensaje
hice esto rapidamente

la idea es que despues de digitar el apellido en el edit presiono un boton y me sale el label con la primera letra y la primera vocal

Código Delphi [-]procedure TForm1.Button1Click(Sender: TObject); Var i: Integer; _PrimeraLetra, _PrimeraVocal, _Letra, _Linea :string; begin _PrimeraLetra := ''; _PrimeraVocal := ''; _Linea := Edit1.Text; _primeraLetra := Copy(_Linea,1,1); For i := 2 to Length(_linea) do Begin _Letra := Copy(edit1.Text, i,1); if (_letra = 'A') or (_letra = 'E') or (_letra ='I') or (_Letra = 'O') or (_letra = 'U') then Begin _PrimeraVocal := _Letra; Break; End; End; Label1.Caption := _PrimeraLetra + _PrimeraVocal; end;


fijate si te es de utilidad
Gracias amigo por tu ayuda pero ya se resolvio con el metodo de ecfisa.

un saludo a los 2 y gracias
Responder Con Cita