Hvordan for man adgang til objektet ?
<% option explicit %><%
' Fejltyper
' 0 = ingen fejl
' 1 = ingen data fundet/hentet
' 2 = det var ikke en vejrdatafil vi fandt
' 3 = by ikke fundet
Class Vejr ' Internt object, skal ikke kaldes direkte
Public Dato
Public Ugedag
Public KortOversigt
Public LangDag
Public LangNat
End Class
Class Vejrmelding ' Dette er et object, der indeholder en komplet vejrmelding
'
' Før objectet kan bruges, skal du kalde "Init" funktionen med den by du vil have en vejrmelding fra
' Eks.: init("06024") for Thisted
'
'
Public Error
Public Tidszone
Public Byen
Public Landet
Public Dagene()
Private fDag
Private function Splitit(hvad)
Dim MyLines,I, VejrData, Linien,Data,J,DD,NN
VejrData=False
If InStr(Hvad,"City Not Found")<>0 Then
Error=3
Else
MyLines=Split(Hvad,vbcrlf)
If IsArray(MyLines) Then ' Vi har data
For I=lBound(MyLines) to uBound(MyLines)
If MyLines(I)="BEGIN:VCALENDAR" then
VejrData=True
Else
Linien=Split(MyLines(I),":")
If IsArray(Linien) Then
If uBound(Linien)>0 Then
Data=Linien(1)
' Dette er data
' Find ud af hvilke
Select Case Linien(0)
Case "X-WR-TIMEZONE" TidsZone=Data
Case "LOCATION"
Byen=Split(Data,"\")(0)
Landet=Trim(Split(Data,",")(1))
Case "SUMMARY" Dagene(fDag).KortOversigt=Data
Case "DESCRIPTION"
Dagene(fDag).Ugedag=Trim(Split(Data,"-")(0))
J=InSTr(Data,"\n")
DD=Mid(Data,1,J-1)
NN=Mid(Data,J+2)
J=InStr(DD," - ")
Dagene(fDag).LangDag=Mid(DD,J+3)
J=InStr(NN," - ")
Dagene(fDag).LangNat=Mid(NN,J+3)
Case "BEGIN"
If Data="VEVENT" Then
fDag=fDag+1
ReDim Preserve Dagene(fDag)
Set Dagene(fDag) = New Vejr
End If
Case "DTSTART;VALUE=DATE" Dagene(fDag).Dato=Data
End Select
End If
End If
End If
'Response.Write(MyLines(I)&"<br>")
Next
If VejrData=False Then Error=2 ' Ingen vejrdata
Else
Error=1
End If
End If
End Function
Public function Init(hvor)
Dim reqHttp,I
Error=0
fDag=-1
Set reqHttp = Server.CreateObject("MSXML2.XMLHTTP.3.0")
reqHttp.Open "Get", Replace("http://www.wunderground.com/auto/ical/global/stations/??????.ics?units=both","??????",hvor), false
reqHttp.setRequestHeader "HTTP_ACCEPT_LANGUAGE", "da"
reqHttp.Send()
Splitit(reqHttp.ResponseText)
Set reqHttp = Nothing
End function
End Class
' Demoprogram der viser hvordan du får data ud af systemet
dim VejrUdsigt , Taller , aalborg,Kort
Set VejrUdsigt=New Vejrmelding
VejrUdsigt.Init("06024")
If VejrUdsigt.Error<>0 then
Response.Write("Fejl ved hentning af vejrdata: " & VejrUdsigt.Error)
Else
Response.Write("Land: " & VejrUdsigt.Landet & "<br>")
Response.Write("By: " & VejrUdsigt.Byen & "<br>")
Response.Write("Tidszone: " & VejrUdsigt.Tidszone & "<br>")
If uBound(VejrUdsigt.Dagene)>0 Then
' Vi har nogle vejrudsigter
For Taller=lBound(VejrUdsigt.Dagene) to uBound(VejrUdsigt.Dagene)
' Vis de enkelte dage
' kort=split(vejrudsigt.Dagene(Taller).KortOversigt,"|")(1)
' response.write kort
%>
<br>
Dato: <%=vejrudsigt.Dagene(Taller).Dato%> (<%=vejrudsigt.Dagene(Taller).Ugedag%>)<br>
Kort: <%=vejrudsigt.Dagene(Taller).KortOversigt%><br>
Dag: <%=vejrudsigt.Dagene(Taller).LangDag%><br>
Nat: <%=vejrudsigt.Dagene(Taller).LangNat%><br>
<%
Next
End If
End If
Set vejrudsigt=Nothing
%>
<br><br><br><br>
<html>
<head>
<meta name="Generator" content="Stone's WebWriter 4">
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="refresh" content="">
<!-- Minus AutoDato -->
<title>ZVejr</title>
<link rel="stylesheet" type="text/css" href="../_themes/sumipntg/sumi1111.css">
<link rel="stylesheet" type="text/css" href="../hesselholt.css">
</head>
</html>
I ovennævnte kode skal der ændres i den her
VejrUdsigt.Init("06024") ved kald af objektet - man skal kunne kalde den med vilkårlig værdi ?
