Por aquí con un problemilla que no sé cómo resolver
En el campo de una DBF tengo escrito palabras, de las cuales extraigo vocales y consonantes las veces que existan o se repitan
por ejemplo si tengo la frase UNA NOCHE CON BAILE y pulso para extraer la N ... tendría N N N (3 veces N)
y si pulso para extraer la O ... tendría O O (2 veces O)
y si pulso para extraer la A ... tendría A A (2 veces A)
El problema es cuando la vocal lleva tilde, como por ejemplo ESA MÁSCARA ES OK ... si pulso para extraer la letra A sólo me sale A A A (3 veces A)
es decir no me toma en cuenta la Á con tilde, ya que con esta deberían salir ---> A Á A A (4 veces A) que es lo correcto y que necesito.
Hay alguna forma de hacerlo ?
De antemano muchas gracias a quien responda.
Adjunto el código...
Code: Select all
#include "HMG.CH"
FUNCTION MAIN()
DEFINE WINDOW UNO AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
FRASE='ESA MÁSCARA ES OK'
LETRA='A'
LARGO=LEN(FRASE)
X=1
Y=1
DO WHILE LARGO>0
PISO=SUBSTR(FRASE,X,1) && CADA LETRA
POSI2='C'+ALLTRIM(STR(X)) && LABEL
IF PISO=LETRA
IF X<25
@ 86,X*50 LABEL &POSI2 VALUE PISO WIDTH 50 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD
ELSE
IF X=25
@ 186,50 LABEL &POSI2 VALUE PISO WIDTH 50 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD
Y=Y+1
ELSE
@ 186,Y*50 LABEL &POSI2 VALUE PISO WIDTH 50 HEIGHT 70 FONT "TAHOMA" SIZE 48 BOLD
Y=Y+1
ENDIF
ENDIF
ELSE
IF X>=25
Y=Y+1
ENDIF
ENDIF
X=X+1
LARGO=LARGO-1
ENDDO
ON KEY ESCAPE ACTION UNO.RELEASE
END WINDOW
UNO.MAXIMIZE
UNO.ACTIVATE
RETURN