Avatar billede ingeman Seniormester
28. januar 2007 - 14:16 Der er 1 kommentar og
1 løsning

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 ?
Avatar billede ingeman Seniormester
28. januar 2007 - 14:38 #1
har fundet ud af det
VejrUdsigt.Init(request.queryString("vejrstation"))
Avatar billede ingeman Seniormester
28. januar 2007 - 14:38 #2
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester