Dette svar er præcis det samme som til http://udvikleren.dk/thread.php?techid=4&f=4&t=880Her er en kode som virker til dit formål, men som ikke er perfekt.. For første gang har jeg faktisk ikke sat kommentare undervejs (shame on me), men jeg kan fortælle dig at jeg gik ind på din henviste hjemmeside og tjekke i kildekoden. Her fandt jeg ud af (efter at have tygget mig igennem noget javascript) at alle data'ene er lagret på siden finans.tv2.dk/aktier/aktiedata.php. Ved at hente denne side ned fik jeg dermed adgang til kursen og skulle nu bare søge efter "Novozymes" og fange den rigtige kursværdi. IP'en fandt jeg ved at ping'e finans.tv2.dk. Ellers burde koden være lige til at bruge. Du skal bare indsætte en Winsock der hedder "wckConnect", og en knap der hedder "cmdRecieveData".
Private StockData As String
Private Sub cmdRecieveData_Click()
If wckConnect.State <> 7 Then
wckConnect.Protocol = sckTCPProtocol
wckConnect.Connect "193.88.89.10", 80
Else
Call RequestData
End If
End Sub
Private Sub wckConnect_Connect()
Call RequestData
End Sub
Public Sub RequestData()
If wckConnect.State = 7 Then
StockData = ""
wckConnect.SendData "GET /aktier/aktiedata.php HTTP/1.1" & vbCrLf & _
"HOST: finans.tv2.dk" & vbCrLf & _
"CONNECTION: Close" & vbCrLf & vbCrLf
Else
Call cmdRecieveData_Click
End If
End Sub
Private Sub wckConnect_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
wckConnect.GetData Data
Dim Timeout As Integer
Timeout = Second(Now) + 5 Mod 60
While Len(Data) <> bytesTotal And Timeout <> Second(Now)
DoEvents
Wend
If Timeout = Second(Now) Then
If MsgBox("Serveren svarer ikke, vil du prøve igen?", vbYesNo) = vbYes Then
Call RequestData
Else
wckConnect.Close
End If
Else
Call RecieveData(Data)
End If
End Sub
Public Sub RecieveData(Data As String)
StockData = StockData & Data
Dim Start As Long
Start = InStr(1, StockData, "Novozymes")
Dim Novozymes() As String
If Start <> 0 Then
Novozymes = Split(Mid$(StockData, Start, InStr(Start, StockData, Chr$(34)) - Start), "|")
Debug.Print Novozymes(1)
Else
If MsgBox("Fejl i datapakke, vil du prøve igen?", vbYesNo) = vbYes Then
Call RequestData
Else
wckConnect.Close
End If
End If
End Sub
Nåhh ja, glemte jeg lige at tilføje. Værdien kommer til at ligge i variablen Novozymes(1). Den kan dog kun ses i funktionen RecieveData, men hvis du vil bruge den andre stedet kan du vælge at definere variablen samme sted som StockData.
// Your brain is your weapon, do not waste it!!
[Redigeret d. 28/09-05 20:44:17 af HAP]