Foros del Web » Programando para Internet » ASP Clásico »

convertir números a palabras

Estas en el tema de convertir números a palabras en el foro de ASP Clásico en Foros del Web. alguien sabe como convertir números a texto en ASP ejm: 4875 a cuatro mil ochocientos setenta y cinco...
  #1 (permalink)  
Antiguo 17/11/2006, 17:10
 
Fecha de Ingreso: junio-2006
Mensajes: 61
Antigüedad: 18 años
Puntos: 0
Pregunta convertir números a palabras

alguien sabe como convertir números a texto en ASP

ejm: 4875 a cuatro mil ochocientos setenta y cinco
  #2 (permalink)  
Antiguo 18/11/2006, 00:34
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Uy :S es una función bastante macabra je je, había un post por ahí en este mismo foro que hablaban al respecto, me parece que había un código funcionando y toda la cosa, sería cuestión de que usaras un poco el buscador.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 18/11/2006, 20:54
 
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 116
Antigüedad: 20 años, 8 meses
Puntos: 1
Hola, tengo la siguiente funcion que esta escrita en visual basic, es lo mismo que lo adaptes para ASP, espero te sirva.

Cita:
Public Function Numero2Letra(ByVal strNum As String, Optional vLo) As String
'----------------------------------------------------------
' Convierte el número strNum en letras (28/Feb/91)
' Versión para Windows (25/Oct/96)
'----------------------------------------------------------
Dim lngA As Long
Dim Negativo As Boolean
Dim L As Integer
Dim Una As Boolean
Dim Millon As Boolean
Dim Millones As Boolean
Dim vez As Integer
Dim MaxVez As Integer
Dim k As Integer
Dim strQ As String
Dim strB As String
Dim strU As String
Dim strD As String
Dim strC As String
Dim iA As Integer
'
Dim strN() As String
Dim lo As Integer
'
'Si no se especifica el ancho...
If IsMissing(vLo) Then
lo = 255
Else
lo = vLo
End If

Dim unidad(0 To 9) As String
Dim decena(0 To 9) As String
Dim centena(0 To 9) As String
Dim deci(0 To 9) As String
Dim otros(0 To 15) As String
'Asignar los valores
unidad(1) = "Una"
unidad(2) = "dos"
unidad(3) = "tres"
unidad(4) = "cuatro"
unidad(5) = "cinco"
unidad(6) = "seis"
unidad(7) = "siete"
unidad(8) = "ocho"
unidad(9) = "nueve"
'
decena(1) = "diez"
decena(2) = "veinte"
decena(3) = "treinta"
decena(4) = "cuarenta"
decena(5) = "cincuenta"
decena(6) = "sesenta"
decena(7) = "setenta"
decena(8) = "ochenta"
decena(9) = "noventa"
'
centena(1) = "ciento"
centena(2) = "doscientas"
centena(3) = "trescientas"
centena(4) = "cuatrocientas"
centena(5) = "quinientas"
centena(6) = "seiscientas"
centena(7) = "setecientas"
centena(8) = "ochocientas"
centena(9) = "novecientas"
'
deci(1) = "dieci"
deci(2) = "veinti"
deci(3) = "treinta y "
deci(4) = "cuarenta y "
deci(5) = "cincuenta y "
deci(6) = "sesenta y "
deci(7) = "setenta y "
deci(8) = "ochenta y "
deci(9) = "noventa y "
'
otros(1) = "1"
otros(2) = "2"
otros(3) = "3"
otros(4) = "4"
otros(5) = "5"
otros(6) = "6"
otros(7) = "7"
otros(8) = "8"
otros(9) = "9"
otros(10) = "10"
otros(11) = "once"
otros(12) = "doce"
otros(13) = "trece"
otros(14) = "catorce"
otros(15) = "quince"
'
On Error GoTo 0

lngA = Abs(Val(strNum))
Negativo = (lngA <> Val(strNum))
strNum = LTrim$(RTrim$(Str$(lngA)))
L = Len(strNum)

If lngA = 0 Then
strNum = Left$("cero" & Space$(lo), lo)
Exit Function
End If
'
Una = True
Millon = False
Millones = False
If L < 4 Then Una = False
If lngA > 999999 Then Millon = True
If lngA > 1999999 Then Millones = True
strB = ""
strQ = strNum
vez = 0

ReDim strN(1 To 4)
strQ = Right$(String$(12, "0") & strNum, 12)
For k = Len(strQ) To 1 Step -3
vez = vez + 1
strN(vez) = Mid$(strQ, k - 2, 3)
Next
MaxVez = 4
For k = 4 To 1 Step -1
If strN(k) = "000" Then
MaxVez = MaxVez - 1
Else
Exit For
End If
Next
For vez = 1 To MaxVez
strU = "": strD = "": strC = ""
strNum = strN(vez)
L = Len(strNum)
k = Val(Right$(strNum, 2))
If Right$(strNum, 1) = "0" Then
k = k \ 10
strD = decena(k)
ElseIf k > 10 And k < 16 Then
k = Val(Mid$(strNum, L - 1, 2))
strD = otros(k)
Else
strU = unidad(Val(Right$(strNum, 1)))
If L - 1 > 0 Then
k = Val(Mid$(strNum, L - 1, 1))
strD = deci(k)
End If
End If
If L - 2 > 0 Then
k = Val(Mid$(strNum, L - 2, 1))
strC = centena(k) & " "
End If
If strU = "uno" And Left$(strB, 4) = " mil" Then strU = ""
strB = strC & strD & strU & " " & strB
If (vez = 1 Or vez = 3) And strN(vez + 1) <> "000" Then strB = " mil " & strB
If vez = 2 And Millon Then
If Millones Then
strB = " millones " & strB
Else
strB = "un millón " & strB
End If
End If
Next
strB = LTrim$(RTrim$(strB))
If Right$(strB, 3) = "uno" Then strB = Left$(strB, Len(strB) - 1) & "a"
Do 'Quitar los espacios que haya por medio
iA = InStr(strB, " ")
If iA = 0 Then Exit Do
strB = Left$(strB, iA - 1) & Mid$(strB, iA + 1)
Loop
If Left$(strB, 6) = "una un" Then strB = Mid$(strB, 5)
If Left$(strB, 7) = "una mil" Then strB = Mid$(strB, 5)
If Right$(strB, 16) <> "millones mil una" Then
iA = InStr(strB, "millones mil una")
If iA Then strB = Left$(strB, iA + 8) & Mid$(strB, iA + 13)
End If
If Right$(strB, 6) = "ciento" Then strB = Left$(strB, Len(strB) - 2)
If Negativo Then strB = "menos " & strB
'
strC = Space$(lo)
LSet strC = strB
Numero2Letra = strC
End Function
Saludos
__________________
"El viento puede soplar fuerte, pero la montaña no lo reverencia"
  #4 (permalink)  
Antiguo 20/11/2006, 08:20
 
Fecha de Ingreso: junio-2006
Mensajes: 61
Antigüedad: 18 años
Puntos: 0
numero a texto

he buscado en la pagina de foros del web y no existe ningun convertidor elaborado en ASP, el q existe en visual para pasarlo a asp no funciona
  #5 (permalink)  
Antiguo 20/11/2006, 08:38
Avatar de FiNo  
Fecha de Ingreso: octubre-2004
Ubicación: Costa Rica
Mensajes: 265
Antigüedad: 19 años, 8 meses
Puntos: 1
http://www.forosdelweb.com/showthrea...=numero+letras
__________________
3S-CRM
  #6 (permalink)  
Antiguo 21/11/2006, 12:02
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 9 meses
Puntos: 1
Yo lo tengo en ASP quien quiera digame y lo pongo por aqui
__________________
<>< EN MOMENTOS DE CRISIS, SOLO LA IMAGINACIÓN ES MÁS IMPORTANTE QUE EL CONOCIMIENTO <><
  #7 (permalink)  
Antiguo 21/11/2006, 12:16
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Cita:
Iniciado por juanmi321 Ver Mensaje
Yo lo tengo en ASP quien quiera digame y lo pongo por aqui
aparentemente lo quiere luisayre...
y, por cierto, FiNo ya ha colocado un enlace a dicha función
__________________
...___...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:11.