Contar, separar y sumar dígitos de una cantidad en V.FOX

Hola experto, una disculpa por darle tantas molestias, pero solo usted puede iluminar mi camino con su sabiduría, quiero preguntarle una ves mas.

Ahora tengo una cantidad en un texbox, esta cantidad quiero saber cuantos dígitos tiene, separar cada uno de ellos y sumarlos entre si, ejemplo:

en el texbox tengo el numero 149

numero de dígitos=3

digito1=1

digito2=4

digito3=9

suma=14

Con el ejemplo que me envío usted de las palabras pensé que era igual, pero me dice que "el valor, tipo o numero de argumento no es valido para esta función"

y pues hasta ahí me quede.

creo que seria bueno que usted me recomendara un libro o manual de auto aprendizaje por que me interesa mucho aprender.

gracias por su ayuda.

1 respuesta

Respuesta
1

Lo que pasa es que el texbox si no le das un valor inicial en la propiedad value siempre lo ingreses allí sera letra no importa que sea número osea que para comparar si es uno deberá ser entre comillas así '1' y no directamente 1 a menos que solo ingreses números le das un valor 0 en la propiedad value y todo lo que ingreses serán valores numericos

Ok. seguí el consejo y ahora ya no da ningún error, y si cuenta el numero de dígitos (ya convertidos en texto), pero no puedo hallar la manera de que se sumen estos dígitos resultantes

le escribo el código del ejemplo para que que lo revise por que el resultado que da siempre es cero

ejemplo:

nombre: RAMÍREZ HERRERA JUAN

numero de letras: 18 (la variable que contiene este numero es TOTALLETRAS)

numero de dígitos son 2 (la variable que contiene este resultado es: largodigitos)

totalv=0

largodigitos=len(alltrim(thisform.texto14.value))
thisform.texto16.Value=STR(totalletras)
for i=1 to largodigitos
letrav=upper(subs(thisform.texto16.value,i,1))
do case
case letrav='1'
totalv=totalv+1
case letrav='2'
totalv=totalv+2
case letrav='3'
totalv=totalv+3
case letrav='4'
totalv=totalv+4
case letrav='5'
totalv=totalv+5
case letrav='6'
totalv=totalv+6
case letrav='7'
totalv=totalv+7
case letrav='8'
totalv=totalv+8
case letrav='9'
totalv=totalv+9
case letrav='0'
totalv=totalv+0
endcase
endfor
thisform.texto18.value=totalv

espero pueda ayudarme

gracias

Claro por que allí preguntas si la letra es '1' súmale uno si la letra es '2' súmale 1 pero preguntas por las letras que están el el texto R A M etc. solo preguntas si son números

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas