Hallo allerseits. Ich bin neu sowohl hier im Forum, als auch im VB. Ich hatte etwas Programmier-Erfahrung mit Delphi (Schule und Freizeit). Nun wollte ich es mit VB probieren. Ich arbeite mit Microsoft Visual Studio 2008. Mein Programm ist ein Browser mit ein Paar erweiterten Funktionen. Eins davon soll folgendes erledigen:
Aktuelle HTML-Seite (vom WebBrowser1) nach Links dursuchen und diese dann in einer ListBox (oder noch besser in einer ListView) anzeigen/ausgeben.
Ich habe zwar beim Googeln das hier gefunden, aber schon an der Stelle mit "InStr" kommt diese Fehler meldung:
"Error 2 Overload resolution failed because no accessible 'InStr' can be called without a narrowing conversion:
'Public Function InStr(Start As Integer, String1 As String, String2 As String, [Compare As Microsoft.VisualBasic.CompareMethod = Microsoft.VisualBasic.CompareMethod.Binary]) As Integer': Argument matching parameter 'Start' narrows from 'Long' to 'Integer'.
'Public Function InStr(String1 As String, String2 As String, [Compare As Microsoft.VisualBasic.CompareMethod = Microsoft.VisualBasic.CompareMethod.Binary]) As Integer': Argument matching parameter 'String1' narrows from 'Long' to 'String'.
'Public Function InStr(String1 As String, String2 As String, [Compare As Microsoft.VisualBasic.CompareMethod = Microsoft.VisualBasic.CompareMethod.Binary]) As Integer': Argument matching parameter 'Compare' narrows from 'String' to 'Microsoft.VisualBasic.CompareMethod'. C:\Users\BLA\Documents\Visual Studio 2008\Projects\WindowsApplication1\WindowsApplication1\Form1.vb 124 24 WindowsApplication1
"
Und davon ca. 10 Stück. Was mache ich falsch? Vielleicht habe ich vergessen etwas zu deklarieren oder so?
Hier mein Code:
Public Class Form1
Private Sub ToolStripButton8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton8.Click
WebBrowser1.Navigate(ComboBox1.Text)
End Sub
Private Sub WebBrowser1_ProgressChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged
ToolStripStatusLabel2.Text = WebBrowser1.StatusText
ToolStripProgressBar1.Visible = True
Dim p, d, t As Integer
d = e.CurrentProgress
t = e.MaximumProgress
If d <= 0 Then
ToolStripProgressBar1.Value = 0
ToolStripProgressBar1.Visible = False
Else
ToolStripProgressBar1.Value = Math.Min(ToolStripProgressBar1.Maximum, Convert.ToInt32(Math.Floor(ToolStripProgressBar1.Maximum * (d / t))))
End If
End Sub
Private Sub ToolStripButton1_ButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.ButtonClick
WebBrowser1.GoBack()
End Sub
Private Sub ToolStripButton2_ButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.ButtonClick
WebBrowser1.GoForward()
End Sub
' Disables the Forward button at the end of navigation history.
Private Sub webBrowser1_CanGoForwardChanged( _
ByVal sender As Object, ByVal e As EventArgs)
ToolStripButton2.Enabled = WebBrowser1.CanGoForward
End Sub
' Disables the Back button at the beginning of the navigation history.
Private Sub webBrowser1_CanGoBackChanged( _
ByVal sender As Object, ByVal e As EventArgs)
ToolStripButton1.Enabled = WebBrowser1.CanGoBack
End Sub
' Disables the Back button at the beginning of the navigation history.
Private Sub webBrowser1_IsBusy( _
ByVal sender As Object, ByVal e As EventArgs)
ToolStripButton5.Enabled = WebBrowser1.IsBusy
End Sub
Private Sub ToolStripButton6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton6.Click
WebBrowser1.Refresh()
End Sub
Private Sub ToolStripButton5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton5.Click
WebBrowser1.Stop()
End Sub
Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton3.Click
WebBrowser1.GoHome()
End Sub
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
TabPage1.Text = WebBrowser1.DocumentTitle
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' TabPage1.Text.
End Sub
Private Sub SpeichernUnterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SpeichernUnterToolStripMenuItem.Click
If FolderBrowserDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
' Set the FolderChoiceTextBox's Text to theFolderBrowserDialog's
' SelectedPath property.
' Me.FolderChoiceTextBox.Text = theFolderBrowser.SelectedPath
End If
End Sub
Private Function HTML_GetAllURLs( _
ByVal sHTMLText As String) As Object
' Alle URL-Adressen im übergebenen HTML-Text suchen
' und als Array zurückgeben
Dim sPos As Long
Dim ePos As Long
Dim hPos As Integer
Dim nCount As Long
Dim sTemp As String
Dim sLink As String
Dim sURL() As String
nCount = 0
If sHTMLText <> "" Then
' an erster Position begonnen
sPos = 1
Do
' nach einleitendem Link-Tag suchen "<a"
sPos = InStr(sPos, LCase$(sHTMLText), "<a ")
If sPos > 0 Then
' <a - Tag gefunden, jetzt End-Tag suchen
ePos = InStr(sPos, sHTMLText, ">")
If ePos > 0 Then
' End-Tag gefunden
' jetzt alles zwischen sPos und ePos filtern
sTemp = Mid$(sHTMLText, sPos, ePos - sPos)
If InStr(Mid$(sTemp, 2), "<") = 0 Then
' nur wenn < nicht nochmals vorhanden ist
sTemp = Mid$(sTemp, 4)
' jetzt nach dem Schlüsselwort "HREF" suchen
hPos = InStr(LCase$(sTemp), "href=")
If hPos > 0 Then
' gefunden... jetzt die Link-Adresse auslesen
sLink = Mid$(sTemp, hPos + 5)
' Prüfen, ob "-Zeichen vorhanden,
' wenn ja - "ausschneiden"
If Left$(sLink, 1) = Chr$(34) Then
sLink = Mid$(sLink, 2)
sLink = strLeft(sLink, Chr$(34))
Else
sLink = strLeft(sLink, " ")
End If
If Right$(sLink, 1) = Chr$(34) Then _
sLink = Left$(sLink, Len(sLink) - 1)
' Link in URL-Array speichern
ReDim Preserve sURL(nCount)
sURL(nCount) = sLink
nCount = nCount + 1
' Weitersuche ab "ePos"
sPos = ePos - 1
End If
End If
End If
sPos = sPos + 1
Else
Exit Do
End If
Loop
End If
HTML_GetAllURLs = sURL
End Function
End Class
Edit 1
Sorry, der Thread gehört natürlich in die Kategorie "C++: Compiler, IDEs, APIs ". Zu spät gesehen ...