From: E. Ricardo Santos (
eddyrshot .en. hotmail.com)
Date: Sat Mar 06 2004 - 17:23:55 CET
Aqui te va la funcion que convierte:
Function naletras(NUMERO) As String
Dim SLUGAR1, SLUGAR2, STEMP1, STEMP2, STEMP3, mysql As
String
Dim NTEMP, LARGO As Integer
Dim rs As Recordset
Dim db As Database
Set db = Workspaces(0).OpenDatabase("tubasedatos.mdb")
STEMP1 = LTrim(RTrim(Str(Int(NUMERO))))
LARGO = Len(LTrim(RTrim(STEMP1)))
STEMP2 = ""
While LARGO > 0
If LARGO = 10 _
Or LARGO = 7 _
Or LARGO = 4 _
Or LARGO = 1 Then
STEMP3
= Left(LTrim(RTrim(STEMP1)), 1)
If
STEMP3 <> "0" Then
NTEMP
= Null
mysql
= "SELECT TblNUMEROLETRAS.* FROM TblNUMEROLETRAS WHERE
(((TblNUMEROLETRAS.numero)=" & Val(STEMP3) &
"));"
Set
rs = db.OpenRecordset(mysql)
NTEMP
= rs("numero")
SLUGAR2
= rs("lugar2")
'SELECT
NTEMP = NUMERO, SLUGAR2 = LUGAR2 FROM tblNUMEROSLETRAS WHERE
NUMERO = CONVERT(INT, STEMP3)
If
Not IsNull(NTEMP) Then
If
NTEMP <> 1 And LARGO <> 1 Then
STEMP2
= LTrim(RTrim(LTrim(RTrim(STEMP2)) + " " + SLUGAR2))
Else
If
LARGO <> "10" _
Or
LARGO <> "4" Then STEMP2 = SLUGAR2
End
If
End
If
If
LARGO = 10 _
Or
LARGO = 4 Then STEMP2 = LTrim(RTrim(STEMP2)) + " MIL"
If LARGO = 7 Then
If
STEMP3 = "1" Then
STEMP2
= "UN MILLON "
Else
STEMP2
= LTrim(RTrim(STEMP2)) + " MILLONES"
End
If
End
If
rs.Close
End
If
End If
If LARGO = 11 _
Or LARGO = 8 _
Or LARGO = 5 _
Or LARGO = 2 Then
STEMP3 = Left(LTrim(RTrim(STEMP1)), 2)
If STEMP3 <> "00" Then
NTEMP
= Null
mysql
= "SELECT TblNUMEROLETRAS.* FROM TblNUMEROLETRAS WHERE
(((TblNUMEROLETRAS.numero)=" & Val(STEMP3) &
"));"
Set
rs = db.OpenRecordset(mysql, dbOpenDynaset)
NTEMP
= rs("numero")
SLUGAR2
= rs("lugar2")
'SELECT
NTEMP = NUMERO, SLUGAR2 = LUGAR2 FROM tblNUMEROSLETRAS WHERE
NUMERO = CONVERT(INT, STEMP3)
If Not IsNull(NTEMP) Then
STEMP2
= LTrim(RTrim(LTrim(RTrim(STEMP2)) + " " + SLUGAR2))
If
LARGO = 11 _
Or
LARGO = 5 Then
STEMP2
= LTrim(RTrim(STEMP2)) + " MIL"
End
If
If
LARGO = 8 Then STEMP2 = LTrim(RTrim(STEMP2)) + "
MILLONES"
LARGO
= LARGO - 1
End
If
rs.Close
End If
End If
If LARGO = 12 _
Or LARGO = 9 _
Or LARGO = 6 _
Or LARGO = 3 Then
STEMP3 =
Left(LTrim(RTrim(STEMP1)), 1)
If STEMP3
<> "0" Then
NTEMP
= Null
mysql
= "SELECT TblNUMEROLETRAS.* FROM TblNUMEROLETRAS WHERE
(((TblNUMEROLETRAS.numero)=" & Val(STEMP3) &
"));"
Set
rs = db.OpenRecordset(mysql)
NTEMP
= rs("numero")
SLUGAR1
= rs("lugar1")
'SELECT
NTEMP = NUMERO, SLUGAR1 = LUGAR1 FROM tblNUMEROSLETRAS WHERE
NUMERO = CONVERT(INT, STEMP3)
If
Not IsNull(NTEMP) Then
If
STEMP3 = "1" And Mid(LTrim(RTrim(STEMP1)), 2, 2) = "00"
Then
STEMP2
= LTrim(RTrim(STEMP2)) + " CIEN " + SLUGAR1
Else
STEMP2
= LTrim(RTrim(STEMP2)) + " " + SLUGAR1
End
If
End
If
rs.Close
End If
End If
LARGO = LARGO - 1
STEMP1 = Right(LTrim(RTrim(STEMP1)),
LARGO)
Wend
db.Close
naletras = LTrim(RTrim(STEMP2))
End Function
Y ahora la base de datos:
0 "" ""
1 "CIENTO" "UN"
2 "DOSCIENTOS" "DOS"
3 "TRESCIENTOS" "TRES"
4 "CUATROCIENTOS" "CUATRO"
5 "QUINIENTOS" "CINCO"
6 "SEISCIENTOS" "SEIS"
7 "SETECIENTOS" "SIETE"
8 "OCHOCINETOS" "OCHO"
9 "NOVECIENTOS" "NUEVE"
10 "" "DIEZ"
11 "" "ONCE"
12 "" "DOCE"
13 "" "TRECE"
14 "" "CATORCE"
15 "" "QUINCE"
16 "" "DIECISEIS"
17 "" "DIECISIETE"
18 "" "DIECIOCHO"
19 "" "DIECINUEVE"
20 "" "VEINTE"
21 "" "VEINTIUN"
22 "" "VEINTIDOS"
23 "" "VEINTITRES"
24 "" "VEINTICUATRO"
25 "" "VEINTICINCO"
26 "" "VEINTISEIS"
27 "" "VEINTISIETE"
28 "" "VEINTIOCHO"
29 "" "VEINTINUEVE"
30 "" "TREINTA"
31 "" "TREINTA Y UN"
32 "" "TREINTA Y DOS"
33 "" "TREINTA Y TRES"
34 "" "TREINTA Y CUATRO"
35 "" "TREINTA YCINCO"
36 "" "TREINTA Y SEIS"
37 "" "TREINTA Y SIETE"
38 "" "TREINTA Y OCHO"
39 "" "TREINTA Y NUEVE"
40 "" "CUARENTA"
41 "" "CUARENTA YUN"
42 "" "CUARENTA Y DOS"
43 "" "CUARENTA Y TRES"
44 "" "CUARENTA Y CUATRO"
45 "" "CUARENTA Y CINCO"
46 "" "CUARENTA Y SEIS"
47 "" "CUARENTA Y SIETE"
48 "" "CUARENTA Y OCHO"
49 "" "CUARENTA Y NUEVE"
50 "" "CINCUENTA"
51 "" "CINCUENTA Y UN"
52 "" "CINCUENTA Y DOS"
53 "" "CINCUENTA Y TRES"
54 "" "CINCUENTA Y CUATRO"
55 "" "CINCUENTA Y CINCO"
56 "" "CINCUENTA Y SEIS"
57 "" "CINCUENTA Y SIETE"
58 "" "CINCUENTA Y OCHO"
59 "" "CINCUENTA Y NUEVE"
60 "" "SESENTA"
61 "" "SESENTA Y UN"
62 "" "SESENTA Y DOS"
63 "" "SESENTA Y TRES"
64 "" "SESENTA Y CUATRO"
65 "" "SESENTA Y CINCO"
66 "" "SESENTA Y SEIS"
67 "" "SESENTA Y SIETE"
68 "" "SESENTA Y OCHO"
69 "" "SESENTA Y NUEVE"
70 "" "SETENTA"
71 "" "SETENTA Y UN"
72 "" "SETENTA Y DOS"
73 "" "SETENTA Y TRES"
74 "" "SETENTA Y CUATRO"
75 "" "SETENTA Y CINCO"
76 "" "SETENTA Y SEIS"
77 "" "SETENTA Y SIETE"
78 "" "SETENTA Y OCHO"
79 "" "SETENTA Y NUEVE"
80 "" "OCHENTA"
81 "" "OCHENTA Y UN"
82 "" "OCHENTA Y DOS"
83 "" "OCHENTA Y TRES"
84 "" "OCHENTA Y CUATRO"
85 "" "OCHENTA Y CINCO"
86 "" "OCHENTA Y SEIS"
87 "" "OCHENTA Y SIETE"
88 "" "OCHENTA Y OCHO"
89 "" "OCHENTA Y NUEVE"
90 "" "NOVENTA"
91 "" "NOVENTA Y UN"
92 "" "NOVENTA Y DOS"
93 "" "NOVENTA Y TRES"
94 "" "NOVENTA Y CUATRO"
95 "" "NOVENTA Y CINCO"
96 "" "NOVENTA Y SEIS"
97 "" "NOVENTA Y SIETE"
98 "" "NOVENTA Y OCHO"
99 "" "NOVENTA Y NUEVE"
Saludos y suerte
----------------------------------
100% Cubano!!!
----- Original Message -----
From: Adrian
To:
Sent: Friday, March 05, 2004 11:34 PM
Subject: Fw: [PHP-ES] funcion para pasar numeros
a letras
Aqui tienes
------------------------------------
Gente:
necesito una funcion que,
al recibir un numero como argumento (ej. 1203)
me devuelva el mismo pero en letras (ej. mil
doscientos tres)
------------------------------------------------------------------------------
--
PHP Spanish Localization Talk Mailing List
(http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
This archive was generated by hypermail 2.1.7 : Fri May 14 2004 - 16:04:34 CEST