Replace problem
Dear All,
Having a small problem that is making me nuts because it is probably something trivial. I have converted an int into a string of words but in spanish. So in english 129.00 is "One hundred and twenty nine dollars" but in spanish it gets more complicated. "Ciento viente y nueve pesos". The problem I have is that when the ammount is say 100 pesos then the spanish changes to "cien pesos". I want to replace "ciento" with "cien".
my code changes the int to word str and then I want to look at that string and replace "ciento pesos" with "cien pesos".
Have a look at the code:
Code to convert number to word string...
<%
Dim words(111,1)
words(1,0) = 1
words(1,1) = "UN "
words(2,0) = 2
words(2,1) = "DOS "
words(3,0) = 3
words(3,1) = "TRES "
words(4,0) = 4
words(4,1) = "CUATRO "
words(5,0) = 5
words(5,1) = "CINCO "
words(6,0) = 6
words(6,1) = "SEIS "
words(7,0) = 7
words(7,1) = "SIETE "
words(8,0) = 8
words(8,1) = "OCHO "
words(9,0) = 9
words(9,1) = "NUEVE "
words(10,0) = 10
words(10,1) = "DIEZ "
words(11,0) = 11
words(11,1) = "ONCE "
words(12,0) = 12
words(12,1) = "DOCE "
words(13,0) = 13
words(13,1) = "TRECE "
words(14,0) = 14
words(14,1) = "CATORCE "
words(15,0) = 15
words(15,1) = "QUINCE "
words(16,0) = 16
words(16,1) = "DIECISEIS "
words(17,0) = 17
words(17,1) = "DIECISIETE "
words(18,0) = 18
words(18,1) = "DIECIOCHO "
words(19,0) = 19
words(19,1) = "DIECINUEVE "
words(20,0) = 20
words(20,1) = "VEINTE "
words(21,0) = 21
words(21,1) = "VEINTEUN "
words(22,0) = 22
words(22,1) = "VEINTIDOS "
words(23,0) = 23
words(23,1) = "VEINTITRES "
words(24,0) = 24
words(24,1) = "VEINTICUATRO "
words(25,0) = 25
words(25,1) = "VEINTICINCO "
words(26,0) = 26
words(26,1) = "VEINTISEIS "
words(27,0) = 27
words(27,1) = "VEINTISIETE "
words(28,0) = 28
words(28,1) = "VEINTIOCHO "
words(29,0) = 29
words(29,1) = "VEINTINUEVE "
words(30,0) = 30
words(30,1) = "TREINTA"
words(31,0) = 31
words(31,1) = "TREINTA Y UNO "
words(32,0) = 32
words(32,1) = "TREINTA Y DOS "
words(33,0) = 33
words(33,1) = "TREINTA Y TRES "
words(34,0) = 34
words(34,1) = "TREINTA Y CUATRO "
words(35,0) = 35
words(35,1) = "TREINTA Y CINCO "
words(36,0) = 36
words(36,1) = "TREINTA Y SEIS "
words(37,0) = 37
words(37,1) = "TREINTA Y SIETE "
words(38,0) = 38
words(38,1) = "TREINTA Y OCHO "
words(39,0) = 39
words(39,1) = "TREINTA Y NUEVE "
words(40,0) = 40
words(40,1) = "CUARENTA "
words(41,0) = 41
words(41,1) = "CUARENTA Y UNO "
words(42,0) = 42
words(42,1) = "CUARENTA Y DOS "
words(43,0) = 43
words(43,1) = "CUARENTA Y TRES "
words(44,0) = 44
words(44,1) = "CUARENTA Y CUATRO "
words(45,0) = 45
words(45,1) = "CUARENTA Y CINCO "
words(46,0) = 46
words(46,1) = "CUARENTA Y SEIS "
words(47,0) = 47
words(47,1) = "CUARENTA Y SIETE "
words(48,0) = 48
words(48,1) = "CUARENTA Y OCHO "
words(49,0) = 49
words(49,1) = "CUARENTA Y NUEVE "
words(50,0) = 50
words(50,1) = "CINCUENTA "
words(51,0) = 51
words(51,1) = "CINCUENTA Y UNO "
words(52,0) = 52
words(52,1) = "CINCUENTA Y DOS "
words(53,0) = 53
words(53,1) = "CINCUENTA Y TRES "
words(54,0) = 54
words(54,1) = "CINCUENTA Y CUATRO "
words(55,0) = 55
words(55,1) = "CINCUENTA Y CINCO "
words(56,0) = 56
words(56,1) = "CINCUENTA Y SEIS "
words(57,0) = 57
words(57,1) = "CINCUENTA Y SIETE "
words(58,0) = 58
words(58,1) = "CINCUENTA Y OCHO "
words(59,0) = 59
words(59,1) = "CINCUENTA Y NUEVE "
words(60,0) = 60
words(60,1) = "SESENTA "
words(61,0) = 61
words(61,1) = "SESENTA Y UNO "
words(62,0) = 62
words(62,1) = "SESENTA Y DOS "
words(63,0) = 63
words(63,1) = "SESENTA Y TRES "
words(64,0) = 64
words(64,1) = "SESENTA Y CUATRO "
words(65,0) = 65
words(65,1) = "SESENTA Y CINCO "
words(66,0) = 66
words(66,1) = "SESENTA Y SEIS "
words(67,0) = 67
words(67,1) = "SESENTA Y SIETE "
words(68,0) = 68
words(68,1) = "SESENTA Y OCHO "
words(69,0) = 69
words(69,1) = "SESENTA Y NUEVE "
words(70,0) = 70
words(70,1) = "SETENTA "
words(71,0) = 71
words(71,1) = "SETENTA Y UNO "
words(72,0) = 72
words(72,1) = "SETENTA Y DOS "
words(73,0) = 73
words(73,1) = "SETENTA Y TRES "
words(74,0) = 74
words(74,1) = "SETENTA Y CUATRO "
words(75,0) = 75
words(75,1) = "SETENTA Y CINCO "
words(76,0) = 76
words(76,1) = "SETENTA Y SEIS "
words(77,0) = 77
words(77,1) = "SETENTA Y SIETE "
words(78,0) = 78
words(78,1) = "SETENTA Y OCHO "
words(79,0) = 79
words(79,1) = "SETENTA Y NUEVE "
words(80,0) = 80
words(80,1) = "OCHENTA "
words(81,0) = 81
words(81,1) = "OCHENTA Y UNO "
words(82,0) = 82
words(82,1) = "OCHENTA Y DOS "
words(83,0) = 83
words(83,1) = "OCHENTA Y TRES "
words(84,0) = 84
words(84,1) = "OCHENTA Y CUATRO "
words(85,0) = 85
words(85,1) = "OCHENTA Y CINCO "
words(86,0) = 86
words(86,1) = "OCHENTA Y SEIS "
words(87,0) = 87
words(87,1) = "OCHENTA Y SIETE "
words(88,0) = 88
words(88,1) = "OCHENTA Y OCHO "
words(89,0) = 89
words(89,1) = "OCHENTA Y NUEVE "
words(90,0) = 90
words(90,1) = "NOVENTA "
words(91,0) = 91
words(91,1) = "NOVENTA Y UNO "
words(92,0) = 92
words(92,1) = "NOVENTA Y DOS "
words(93,0) = 93
words(93,1) = "NOVENTA Y TRES "
words(94,0) = 94
words(94,1) = "NOVENTA Y CUATRO "
words(95,0) = 95
words(95,1) = "NOVENTA Y CINCO "
words(96,0) = 96
words(96,1) = "NOVENTA Y SEIS "
words(97,0) = 97
words(97,1) = "NOVENTA Y SIETE "
words(98,0) = 98
words(98,1) = "NOVENTA Y OCHO "
words(99,0) = 99
words(99,1) = "NOVENTA Y NUEVE "
words(100,0) = 100
words(100,1) = "CIENTO "
words(101,0) = 200
words(101,1) = "DOSCIENTOS "
words(102,0) = 300
words(102,1) = "TRESCIENTOS "
words(103,0) = 400
words(103,1) = "CUATROCIENTOS "
words(104,0) = 500
words(104,1) = "QUINIENTOS "
words(105,0) = 600
words(105,1) = "SEISCIENTOS "
words(106,0) = 700
words(106,1) = "SETECIENTOS "
words(107,0) = 800
words(107,1) = "OCHOCIENTOS "
words(108,0) = 900
words(108,1) = "NOVECIENTOS "
words(109,0) = 1000
words(109,1) = "MIL "
words(110,0) = 100000
words(110,1) = "Lakh "
words(111,0) = 10000000
words(111,1) = "MILLION "
'function to convert numbers to words
Function cWord(num)
Dim leftToProcess, wrkngWord, i
IF num = 0 THEN
cWord = ""
EXIT FUNCTION
END IF
leftToProcess = cDbl(num)
For i = 111 to 1 step -1
If leftToProcess/cLng(words(i,0)) >= 1 Then
If i >= 109 Then
wrkngWord = wrkngWord & cWord(Fix(leftToProcess/cLng(words(i,0)))) & words(i,1)
Else
wrkngWord = wrkngWord & words(i,1)
End If
leftToProcess = leftToProcess - (Fix(leftToProcess/cLng(words(i,0))) * cLng(words(i,0)))
End If
If leftToProcess < 1 And leftToProcess > 0 Then
cWord = wrkngWord
Exit For
End If
Next
cWord = wrkngWord
End Function
%>
Invoking procedure:
<tr>
<td width="153"> </td>
<% rsGTotal = oRSbt("GrndTotal") %>
<td width="418" class="f" rowspan="2" valign="middle">**
<%
Dim strInput
strInput = rsGTotal
rsGTotalStr = ""
IF strInput <> "" THEN
IF instr(strInput,".") > 0 THEN
rsGTotalStr = cWord(Left(strInput,Instr(strInput,".")-1)) & " PESOS " & Mid(strInput,Instr(strInput,".")+1) & "/100MN"
Else
rsGTotalStr = cWord(strInput) & " PESOS"
End IF
rsBadPhrase = "CIENTO PESOS"
rsGoodPhrase = "CIEN PESOS"
rsGTotal = Replace(rsGTotalStr, rsBadPhrase, rsGoodPhrase)
Response.Write rsGTotal
End If
%> **</td>
No matter what I do to the replace it never recognises the string
Any suggestions
With regards and a happy new year to you all,
Paul
Mexico
|