webForumDet fria alternativet

Plocka ut USD säljkurs från Forex valutaprogram?

ASP

8 svar · 349 visningar · startad av bigsky

Medlem sedan maj 2002821 inlägg
Frågan#1

Vi prenumererar på Forex valutaprogram och får därför plocka ut de olika värdena för olika valutor och använda dem på vår sida. Problemet är att Forex inte tillhandahåller tekniken för att plocka ut värdena. Skulle någon kunna skriva ihop ett komplett kodexempel för att plocka ut säljkursen för USD från sidan http://www.forex.se/framerates.asp?id=142&lang=sv

Det enda värdet som ska finnas kvar efter avskalning ska vara valutas värde, tex. "7.6317".

Medlem sedan mars 20015 287 inlägg
#2

Riktig spagettikod:

<%
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www.forex.se/framerates.asp?id=142&lang=sv", False
objHTTP.setRequestHeader "Content-type","text/html"
objHTTP.Send
strHTML = objHTTP.responseText
Set objHTTP = Nothing

Set RegEx = New RegExp
RegEx.Global = True

'Plockar ut raden med vald valuta
RegEx.Pattern = "<td class=""FOREXHighlight"">USD</td>"
strHTML= RegEx.Replace(strHTML,( chr(253) ))
RegEx.Pattern = "<td colspan=""9"">&nbsp;</Td>"
strHTML= RegEx.Replace(strHTML,( chr(254) ))
RegEx.Pattern = chr(253) & "[^" & chr(254) & "]*" & chr(254)
Set strOut = RegEx.execute(strHTML)

strHtml = strOut.Item(0)

RegEx.pattern = "(\n)"
strHtml = RegEx.replace(strHtml, " ")

strHtml = Replace(strHtml,chr(253)," ")
strHtml = Replace(strHtml,chr(254)," ")

'plockar ut rätt kolumn
RegEx.Pattern = "<td class=""FOREXHighlight"">"
strHTML= RegEx.Replace(strHTML,( chr(253) ))
RegEx.Pattern = "</td>"
strHTML= RegEx.Replace(strHTML,( chr(254) ))
RegEx.Pattern = chr(253) & "[^" & chr(254) & "]*" & chr(254)
Set strOut = RegEx.execute(strHTML)

strHtml = strOut.Item(3)

Set RegEx = Nothing

strHtml = Replace(strHtml,chr(253)," ")
strHtml = Replace(strHtml,chr(254)," ")

response.write trim(strHtml)
%>
Medlem sedan maj 2002821 inlägg
#3

Det blir bara ett internt serverfel med den koden. Microsoft.XMLHTTP stöds dock.

Medlem sedan mars 20015 287 inlägg
#4

Och vad får du för felmeddelande om du slår av Friendly error messages / Egna http-felmeddelanden i Internet Explorer?

Medlem sedan maj 2002821 inlägg
#5

Microsoft VBScript runtime fel '800a0005'

Invalid procedure call or argument

/macgyverworldcom/usd.asp, rad 29

--

29 = strHtml = strOut.Item(0)

Medlem sedan mars 20015 287 inlägg
#6

Ah, det är denna rad som blev tokig när jag postade koden:

RegEx.Pattern = "<td colspan=""9"">&nb-sp;</Td>"

Fimpa bindestrecket.

Medlem sedan maj 2002821 inlägg
#7

Ok, skulle du kunna uppdatera din kod ovan så att det bara är att klippa och klistra?

Medlem sedan mars 20015 287 inlägg
#8

Kolla bara efter den rad som ser ut likt den i mitt senaste inlägg, skillnaden är att det ska stå &-n-b-s-p-; och inte ett vanligt mellanslag som wF-koden omvandlar det till.
Lätt som en plätt.
Kan iofs vara läge att lägga in någon form av felkoll som fångar upp dylika fel så att man kan konstruera ett något vackrare felmeddelande än det du fick.

Medlem sedan maj 2002821 inlägg
#9

Ja jäklar, det fungerade ju finfint.

252 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)