Pregunta:
¿ayuda con programa de principiante visual basic 6.0?
wicho
2009-07-28 16:41:40 UTC
hola a toos estoy comenzando a aprender a programar en visual basic o/y en general.
Bueno yo les queria pedir ayuda por que tngo como meta realizar un programa que seguramente sera muy facil para algunos.
Pero no vayan a pensar que les estoy pidiendo que me lo hagan, simplemente quiero saber si me pueden brindar un tipo de ayuda, ya sea diciendom la logica del problema, o ayudandome para saber que estructuras debo usar? if, case, ciclos etc??
EL programa es ingresar una cantidad en numeros (integer) y convertir esa cantidad a palabras a otro textbox de 0 a 999999
Por ejemplo
1 = uno
20 = veinte
150 = ciento cincuenta

Por favor cualquier ayuda o comentario es bienvenido con sus respectivos puntos :D

salu2
Tres respuestas:
D@ri0
2009-07-28 16:50:23 UTC
Ola

mira pues aki esta un código donde te puedes basar para hacr tu programa

lo puedes modificar y todo

suerte

saludos!...
aem
2009-07-29 06:51:10 UTC
Hola:

La referencia que dejo el amigo, es buena, ahí hay un formulario con un textbox, en el cual ingresas un numero y te lo da en letras en un label. Como defecto, no trabaja con centavos.(o decimaes en este caso) si queres convertir pesos en letra, entonces tenes que tener en cuenta este detalle.

El codigo que aca te paso, es una funcion que te devuelve una cadena, con la cual podes llenar un cuadro de texto o un label o en el caso que yo lo use, una variable que representaba un espacio en un documento de word, para armar un contrato de locacion.

Para pasar de un cuadro de texto en numeros(text1.text) a un cuadro de texto en letras(text2.text) basta con invocar la funcion pasandole el parametro del valor en numeros.

text2.text=PesoLe(Val(Text1.Text))



Espero que te sirva:

Public Function PesoLe(Nm As Double) As String

Dim Nu As Long, ca As String, cad As String, finca As String, d As Double, centa As String

Dim prica As String, cienca As String, n As String, caci As String

Dim milca As String, miles As String, cant As Long, pesos As String, dece As String, Fino%

Fino = 1

Nu = Fix(Nm) 'Nu parte entera

d = Nm - Nu 'd parte decimal

cad = Str$(Nu)



If Nu <> Nm Then '------- enletrado de decimales -----------------

n = LTrim$(Str$(Fix(d * 101)))

If d * 100 < 16 Then

GoSub xunidad

Else

prica = Left$(LTrim$(Str$(Fix(d * 101))), 1)

GoSub xdecena

n = Right$(LTrim$(Str$(Fix(d * 101))), 1)

GoSub xunidad

End If

If ca = "uno" Then

centa = pesos + " con " + dece + "un centavo"

Else

centa = pesos + " con " + dece + ca + " centavos"

End If

End If





If Nm > 999.99 Then '------enletrado de los encima de mil -------------

cant = Len(cad): milca = LTrim$(Mid$(cad, 1, cant - 3))



Select Case Val(LTrim$(milca))

Case 0 To 15: n = LTrim$(milca): GoSub xunidad:

If n = "1" Then

miles = "mil"

Else

miles = ca + "mil"

End If

Case 16 To 99: prica = Left$(LTrim$(milca), 1): GoSub xdecena

n = Right$(LTrim$(milca), 1)

GoSub xunidad:

miles = dece + ca + "mil"

Case 100 To 999: cienca = Left$(LTrim$(milca), 1): GoSub xciento

prica = Mid$(LTrim$(milca), 2, 1): GoSub xdecena

n = Right$(LTrim$(milca), 1): GoSub xunidad

miles = caci + dece + ca + "mil"

End Select 'de los milca

Nu = Nu - (Val(milca) * 1000)

End If '------------ fin de los miles -----------



cad = Str$(Nu)

Select Case Nu

Case 0 To 15: n = LTrim$(cad): GoSub xunidad: pesos = ca

Case 16 To 99: prica = Left$(LTrim$(cad), 1): GoSub xdecena

n = Right$(LTrim$(cad), 1)

GoSub xunidad:

pesos = dece + ca

Case 100 To 999: cienca = Left$(LTrim$(cad), 1): GoSub xciento

prica = Mid$(LTrim$(cad), 2, 1): GoSub xdecena

n = Right$(LTrim$(cad), 1): GoSub xunidad

pesos = caci + dece + ca

End Select

PesoLe = "Son Pesos:" + miles + pesos + centa

Exit Function '----------------fin del main------------



xciento:

Select Case cienca

Case "0": caci = ""

Case "1": caci = "ciento"

Case "2": caci = "dosciento"

Case "3": caci = "tresciento"

Case "4": caci = "cuatrociento"

Case "5": caci = "quiniento"

Case "6": caci = "seisciento"

Case "7": caci = "seteciento"

Case "8": caci = "ochociento"

Case "9": caci = "noveciento"

End Select

Return



xunidad:

Select Case n

Case "0": ca = "": Fino = 0

Case "1": ca = "uno"

Case "2": ca = "dos"

Case "3": ca = "tres"

Case "4": ca = "cuatro"

Case "5": ca = "cinco"

Case "6": ca = "seis"

Case "7": ca = "siete"

Case "8": ca = "ocho"

Case "9": ca = "nueve"

Case "10": ca = "diez"

Case "11": ca = "once"

Case "12": ca = "doce"

Case "13": ca = "trece"

Case "14": ca = "catorce"

Case "15": ca = "quince"

End Select

Return



xdecena:

Select Case prica

Case " ": dece = " "

Case "1": dece = "diezy"

Case "2": dece = "veintey"

Case "3": dece = "treintay"

Case "4": dece = "cuarentay"

Case "5": dece = "cincuentay"

Case "6": dece = "sesentay"

Case "7": dece = "setentay"

Case "8": dece = "ochentay"

Case "9": dece = "noventay"

End Select

Return



End Function



Dios te bendiga

Saludos

Antonio
Niico93
2009-07-28 17:09:46 UTC
Podrias usar Len y Mid, sabiendo que si tiene 2 cifras la primera va tanto, despues, tanto si tiene 3 tanto...



Podes poner un Select seria lo más recomendable algo asi:



Select Case Len(TextBox1.Text)

Case 2: 'dos cifras

Case 3: 'tres cifras

...

End Select



Salu2.


Este contenido se publicó originalmente en Y! Answers, un sitio web de preguntas y respuestas que se cerró en 2021.
Loading...