Dim Funktion bei mehreren subs zulassen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von n1nja.

    Dim Funktion bei mehreren subs zulassen

    Hey VB-Paradise Com.

    Hier mein Code:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Text.RegularExpressions
    2. Imports System.IO
    3. Imports System.Text
    4. Public Class Form1
    5. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    6. End Sub
    7. Private Sub quellcode_auslesen()
    8. Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(webrequest_url)
    9. Dim response As System.Net.HttpWebResponse = request.GetResponse
    10. Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream())
    11. Dim rssourcecode As String = sr.ReadToEnd
    12. Dim r As New System.Text.RegularExpressions.Regex("<a href=""/release/(.*)"" style=(.*)""color: #FFFFFF"">(.*)(.*)<")
    13. Dim matches As MatchCollection = r.Matches(rssourcecode)
    14. For Each itemcode As Match In matches
    15. ListBox1.Items.Add(itemcode.Value.Split(CChar(">(.*)""(.*)<")).GetValue(1).ToString.Substring(0, itemcode.Value.Split(CChar(">(.*)""(.*)<")).GetValue(1).ToString.Length - 1))
    16. ListBox1.SelectedIndex = (0)
    17. Next
    18. End Sub
    19. Private Sub get_quellcode()
    20. ListBox1.Items.Clear()
    21. If ComboBox1.SelectedItem = "Google" Then
    22. Dim webrequest_url = "www.google.de"
    23. End If
    24. If ComboBox1.SelectedItem = "Youtube" Then
    25. Dim webrequest_url = "www.youtube.de"
    26. End If
    27. End Sub
    28. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    29. get_quellcode()
    30. End Sub
    31. End Class


    Ich möchte einmal die funktion (regex: Private Sub quellcode_auslesen()) festlegen und dann anhand einer combobox den URL der angefordert werden soll ändern.
    Bsp.: Private Sub quellcode_auslesen()
    Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(webrequest_url)
    ...
    End Sub


    ----
    If ComboBox1.SelectedItem = "Google" Then
    Dim webrequest_url = "www.google.de"

    End If
    If ComboBox1.SelectedItem = "Youtube" Then
    Dim webrequest_url = "www.youtube.de"

    End If

    Ich weiß nicht wie ich das hinbekommen.

    Mfg Regular_vb_user
    Ich hoffe, dass ich Dich richtig verstanden habe.
    Du musst eine If- oder Select Case-Konstruktion bauen, um auf mehrere Möglichkeiten zu verweisen:

    VB.NET-Quellcode

    1. If i = 1 Then
    2. ' ToDo 1
    3. Else If i = 2 Then
    4. ' ToDo 2
    5. Else
    6. ' ToDo sonst
    7. End If
    8. ' ----
    9. Select Case i
    10. Case 1
    11. ' ToDo 1
    12. Case 2
    13. ' ToDo 2
    14. Case Else
    15. ' ToDo sonst
    16. End Select
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    trenne Daten und Gui.
    Modularisiere Verantwortlichkeiten.

    DAs führt dahin, eine Methode zu schreiben, die einen String analysiert und eine List(Of String) zurückgibt. Die Methode könnte "ParseWebContent" heißen, und würde die Regex-Geschichten erledigen.

    Eine annere Methode könnte "GetWebContent" heißen, und man gibt ihr eine Url As String, und sie returnt den Inhalt der runtergeladenen Datei, ebenfalls As String.

    Nun kannst du ein paar Urls in eine List(Of String) packen, und diese Liste der Combobox als Datasource andrehen.
    Im SelectedIndexChanged der Combo greifst du dir die angewählte Url, rufst damit GetWebContent auf, und das Ergebnis übergibste an ParseWebContent.
    Die Rückgabe von ParseWebContent kann dann als Datasource etwa einer Listbox dienen und fertig.