Quelltext extrahieren

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von moon.

    Quelltext extrahieren

    Hi Leute,
    ich brauch mal wieder eure Hilfe.
    Ich habe einen Quelltext, aus dem möchte ich den Text zwischen dem ersten <tr> und dem 31sten </tr> rausholen, nur stehe ich grad auf dem Schlauch.
    Ich habe das ganze schoneinmal gemacht, nur ich weis nicht mehr wie:-)
    Ich hoffe ihr könnt mir helfen
    So in die Richtung

    VB.NET-Quellcode

    1. Dim v As Array = Split(quellcode, "tr>")
    2. Dim ausschnitt As String = ""
    3. For i As Long = 0 To 30 ' oder 31 probieren
    4. ausschnitt = ausschnitt & v(i)
    5. Next

    oder

    VB.NET-Quellcode

    1. Dim v As Array = Split(quellcode, "<tr>")
    2. Dim t As Array = Split(v(1), "</tr>")
    3. Dim ausschnitt As String = ""
    4. For i As Long = 0 To 30 ' oder 31 probieren
    5. ausschnitt = ausschnitt & t(i)
    6. Next

    Schau dir generell mal Split an.

    /New Edit
    hm da bekomm ich bei

    VB.NET-Quellcode

    1. For i As Long = 0 To 10 ' oder 31 probieren
    2. ausschnitt = ausschnitt & t(i)
    3. Next

    bei t(i) diese Meldung:
    Der Index war außerhalb des Arraybereichs.
    Aber ich hab das damals anders gemacht, ichhab irgendwie die position des <tr> und des 31 </tr> herausefunden und dann alle vor der position des <tr> und alles nach der position des 31 </tr> extrahiert
    Nur leider weis ich nicht wie^^
    Ok ich habe jetzt noch ein wenig rumprobiert, und die 1.Methode geht mit der Zahl 46 (ich hab noch mal nachgezählt, ich komme nur auf 31) naja is ja egal, jetzt möchte ich noch alles vor dem ersten <tr> weghaben, vlt hilfst du mir nochmal, heut is bei mir im Hirn alles weg^^
    Du musst natürlich erst den Code von kevin89 nehmen und dann meinen Code dranhängen:

    VB.NET-Quellcode

    1. Dim v As Array = Split(quellcode, "<tr>")
    2. Dim t As Array = Split(v(1), "</tr>")
    3. Dim ausschnitt As String = ""
    4. For i As Long = 0 To 30 'Hier weis ich nicht was du hast, einfach ändern
    5. ausschnitt = ausschnitt & t(i)
    6. Next
    7. ausschnitt = ausschnitt.Substring(ausschnitt.IndexOf("<tr>")+4)


    lg
    Ich habe den Code von Kevin schon
    Das Problem ist es sind sehr viele Zeichen vor dem 1.<tr>, die alle weg müssen, es Varriert aber die Zeichenanzahl immer.
    Wenn ich +4 mache, sind nur die ersten 4 Zeichen weg.
    Hier mal der Code:

    VB.NET-Quellcode

    1. Dim quellcode As String = RichTextBox1.Text
    2. Dim v As Array = Split(quellcode, "tr>")
    3. Dim ausschnitt As String = ""
    4. For i As Long = 0 To 46 ' oder 31 probieren
    5. ausschnitt = ausschnitt & v(i)
    6. Next
    7. ausschnitt = ausschnitt.Substring(ausschnitt.IndexOf("<tr>"))
    8. RichTextBox1.Text = ausschnitt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „moon“ ()

    Danke schonmal.
    Es glaubt auch schon ganz gut, nur manchmal eben nicht^^und ich bin mir 100 % sicher, dass es am extrahieren liegt.
    Ich beschreibe jetzt noch mal mein Problem ganz:
    Ich habe einen Quelltext:
    Siehe Anhang
    Davon soll alles bis zum ersten <table id="latest"> raus und alles hinter dem ersten </table> raus.

    Achtung: Die Länge des Teiles vor dem ersten <table id="latest"> und nach dem ersten </table> variiert!

    Ps: Hat sich ein wenig geändert.

    Ich hoffe ihr könnt mir noch einmal helfen.
    Danke
    Dateien
    • Quelltext.txt

      (31,1 kB, 574 mal heruntergeladen, zuletzt: )