Avatar billede bb_maze Nybegynder
03. maj 2005 - 20:39 Der er 7 kommentarer og
3 løsninger

Brug af ScriptControl

Hejsa

Jeg er i gang med at lave en rss reader, og i den sammenhæng ønsker jeg at gøre brug af funktionen ScriptControl.Timeout
Den skal fx bruges hvis man indtaster en url, og denne ikke findes, eller at serveren er nede
Men hvordan gør jeg det?

Jeg har prøvet følgende:
strURL = "http://www.f1racing.net/en/xml/rss/en.xml"
If ScriptControl1.Timeout Then Timeout_stop
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.async = False
xmlDoc.Load strURL

Hvor Timeout_stop henviser til en dialogbox, hvorved programmet kan afsluttet. Dog er mit problem at den lige meget om serveren er nede eller at det virker fint, så hopper den ned til denne dialogbox.

Er der nogle der har en løsning? På forhånd stor tak.

Hygge

P.S. Jeg har tilføjet ScriptControl-komponenten til VisualBasic
Avatar billede dar86 Nybegynder
05. maj 2005 - 22:46 #1
If sætning efter xmlDoc.load strUrl ;)
Avatar billede ameq Nybegynder
05. maj 2005 - 22:47 #2
svar fra irc
Avatar billede bb_maze Nybegynder
05. maj 2005 - 22:48 #3
Det er lige testet, og det virker ikke :/ Nu hopper den ud af det hver gang, på trods af at siden findes...
Avatar billede bb_maze Nybegynder
05. maj 2005 - 22:49 #4
For resten så er ScriptControl1.Timeout er sat til 100000, så serveren med filen har altså en chance for at svare.
Avatar billede bb_maze Nybegynder
05. maj 2005 - 22:53 #5
Her er lige lidt mere kode:
------------------
Private Sub Timeout_stop()
If MsgBox("Der er opstået en fejl - siden kunne ikke findes.", vbRetryCancel, "Fejl") = vbRetry Then MainUpdate Else
    End

End Sub

------------------

Sub MainUpdate()

txtMain.Text = ""
'strURL "http://www.f1racing.net/en/xml/rss/en.xml"

Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.async = False
xmlDoc.Load strURL

If ScriptControl1.Timeout Then Timeout_stop    'fejl håndtering


For Each x In xmlDoc.documentElement.childNodes


  For Each y In x.childNodes
 
  '----------------------

        If y.nodeName = "title" Then
        txtMain.Text = txtMain.Text & y.Text & vbCrLf '& vbcrlf 'x.nodename & x.nodename & x.text & vbcrlf 'y.item(i-1).getAttribute("code") & ": " & y.item(i-1).getAttribute("desc") & ": " & y.item(i-1).getAttribute("rate") & vbcrlf
        txtMain.Text = (txtMain.Text) & vbCrLf  '& vbcrlf
    Else
        If y.nodeName = "link" Then
        txtMain.Text = txtMain.Text & y.Text & vbCrLf '& vbcrlf 'x.nodename & x.nodename & x.text & vbcrlf 'y.item(i-1).getAttribute("code") & ": " & y.item(i-1).getAttribute("desc") & ": " & y.item(i-1).getAttribute("rate") & vbcrlf
        txtMain.Text = txtMain.Text & vbCrLf & "----------------" & vbCrLf
    Else
        If y.nodeName = "description" Then
        txtMain.Text = txtMain.Text & y.Text & vbCrLf '& vbcrlf 'x.nodename & x.nodename & x.text & vbcrlf 'y.item(i-1).getAttribute("code") & ": " & y.item(i-1).getAttribute("desc") & ": " & y.item(i-1).getAttribute("rate") & vbcrlf
        txtMain.Text = txtMain.Text & vbCrLf & "----------------" & vbCrLf
    End If
    End If
    End If
   
  '----------------------
    'Text1.FontBold = True
    For Each z In y.childNodes
       
        If z.nodeName = "title" Then
        txtMain.Text = txtMain.Text & z.Text & vbCrLf  '& vbcrlf 'x.nodename & x.nodename & x.text & vbcrlf 'y.item(i-1).getAttribute("code") & ": " & y.item(i-1).getAttribute("desc") & ": " & y.item(i-1).getAttribute("rate") & vbcrlf
        txtMain.Text = txtMain.Text '& vbcrlf
    Else
        If z.nodeName = "link" Then
        txtMain.Text = txtMain.Text & z.Text & vbCrLf '& vbcrlf 'x.nodename & x.nodename & x.text & vbcrlf 'y.item(i-1).getAttribute("code") & ": " & y.item(i-1).getAttribute("desc") & ": " & y.item(i-1).getAttribute("rate") & vbcrlf
        txtMain.Text = txtMain.Text & vbCrLf
    Else
        If z.nodeName = "description" Then
        txtMain.Text = txtMain.Text & z.Text & vbCrLf '& vbcrlf 'x.nodename & x.nodename & x.text & vbcrlf 'y.item(i-1).getAttribute("code") & ": " & y.item(i-1).getAttribute("desc") & ": " & y.item(i-1).getAttribute("rate") & vbcrlf
        txtMain.Text = txtMain.Text & vbCrLf & "----------------" & vbCrLf
    End If
    End If
    End If
   
Next
Next
   
Next x

     
End Sub

-----------------

I må sige til hvis i mangler andet

Hygge
Avatar billede bb_maze Nybegynder
27. juni 2005 - 00:52 #6
Det lykkedes aldrig at få løst problemet. Men ameq du må gerne smide et svar - så deler vi point som tak for hjælpen :)

Hygge
Avatar billede bb_maze Nybegynder
13. august 2005 - 15:10 #7
ameq?!
Avatar billede ameq Nybegynder
13. august 2005 - 20:05 #8
jo, men hvis du nu ikke fik løst problemmet?
Avatar billede bb_maze Nybegynder
13. august 2005 - 20:10 #9
Men du brugte så lang tid på det.

Jeg snakkede desuden med en anden gut om det her for nogle dage siden, og løsningen var vidst at skrive hele scriptet om - så vi kunne ikke bare nøjes med at ændre i den her del.

Men tak for forsøget og hjælpen :)
Avatar billede ameq Nybegynder
13. august 2005 - 20:35 #10
jamen det var så lidt =)
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