Wrox Programmer Forums
|
Classic ASP Basics For beginner programmers starting with "classic" ASP 3, pre-".NET." NOT for ASP.NET 1.0, 1.1, or 2.0
Welcome to the p2p.wrox.com Forums.

You are currently viewing the Classic ASP Basics section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old January 7th, 2004, 12:27 PM
Authorized User
 
Join Date: Jun 2003
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
Default 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">&nbsp;</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
 
Old January 8th, 2004, 02:52 AM
Authorized User
 
Join Date: Jun 2003
Posts: 14
Thanks: 0
Thanked 0 Times in 0 Posts
Default

hi, i think you have more than one space between CIENTO and PESOS,
so try this:

rsGTotalStr = TRIM(cWord(strInput)) & " PESOS"


(also trim more higher in your code if you have decimals.

good luck!
mndrx
 
Old January 8th, 2004, 10:00 AM
Authorized User
 
Join Date: Jun 2003
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Thanks mndrx, it worked a treat...! Appreciate your help...





Similar Threads
Thread Thread Starter Forum Replies Last Post
UPDATETEXT Problem: replace one value with another kwilliams SQL Server 2000 0 November 5th, 2007 12:04 PM
Replace In c# jayanth_nadig SQL Language 2 July 3rd, 2006 03:25 AM
replace ' and " with \' and \" Brian Campbell XSLT 4 May 24th, 2006 10:49 AM
Problem with redirect/replace gorros Javascript 4 March 11th, 2006 07:37 AM
replace "." with "/" thelos Excel VBA 1 September 14th, 2005 10:47 AM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.