Matchcollection to Datatable

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Matchcollection to Datatable

    Hallo Boardies,

    bin nun schon eine ganze Weile auf der Suche, finde aber leider nichts brauchbares, dabei ist des Rätsels Lösung warscheinlich garnicht so knifflig.
    Wie bekomme ich die Matches einer Matchcollection in ein Datatable?
    Direkt an ein Datagridview würde auch gehen, erst in ein Datatable wäre mir aber lieber.

    Vielen Dank.
    Pack sie in eine List(Of string) und binde diese Liste per DataSource an Dein Control.
    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!
    Danke.
    Also in List of String packen funktioniert schonmal.
    Wenn ich in die Variable schaue ist auch das richtige drinn, das komische ist nur in der Gridview wird mir die Length der Strings angezeigt aber nicht die Strings an sich.

    Hier mal mein Code.

    VB.NET-Quellcode

    1. Private Sub cmdwebsite_Click(sender As Object, e As EventArgs) Handles cmdwebsite.Click
    2. DataGridView1.DataSource = Parser.GetTags(txtwebsite.Text)
    3. End Sub
    4. Public Function GetTags(ByVal website As String) As List(Of String)
    5. Dim Request As HttpWebRequest = HttpWebRequest.Create(website)
    6. Dim Response As HttpWebResponse = Request.GetResponse()
    7. Dim Reader As StreamReader = New StreamReader(Response.GetResponseStream)
    8. Dim Content As String = Reader.ReadToEnd()
    9. Dim HTMLTag As String = "(?<=alt="").*?(?="")"
    10. Dim Regex As Regex = New Regex(HTMLTag, RegexOptions.Compiled Or RegexOptions.IgnoreCase)
    11. Dim Matches As MatchCollection = Regex.Matches(Content)
    12. Dim MatchList As List(Of String) = New List(Of String)
    13. For Each Match In Matches
    14. MatchList.Add(Match.ToString)
    15. Next
    16. Return MatchList
    17. End Function
    matches kannst du nicht in eine List(Of String) packen, denn ein Match ist kein String.

    pack doch die Matches einfach in eine List(Of Match)

    VB.NET-Quellcode

    1. Dim matches = Regex.Matches("Das ist das Haus vom Nikolaus", "\w*?a\w*").Cast(Of Match).ToList
    2. DataGridView1.DataSource = matches
    Aber warum zum Kuckuck will man sowas tun - arbeitest du an einem Regex-Tester?