Text aus Website lesen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Samus Aran.

    Text aus Website lesen

    hallo leute!
    ich habe folgendes problem:
    ich möchte für mein kleines programm eine update-funktion (möglichst ohne ftp server) machen.
    dabei möchte ich, dass das programm von einer website den body-text liest, und mit der im programm abgespeicherten versionskennung vergleicht, und somit falls eine neue version existiert, updatet.
    code bis jetzt:

    VB.NET-Quellcode

    1. Dim Version As Integer
    2. Dim UpdateCheck As Integer
    3. Version = "Beta v2 (12.02.12)"
    4. UpdateCheck = WebBrowser1.Document.Body.InnerText
    5. If UpdateCheck = Version Then
    6. MessageBox.Show("No new update avaiable!", "No new update!", MessageBoxButtons.OK)
    7. Me.Close()
    8. Else
    9. If MessageBox.Show("New update avaiable!" + vbCrLf + "Do you want to update now?", "New update avaiable!", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
    10. ' hier kommt noch was hin, das update halt
    11. End If
    12. End If


    das problem besteht jetzt daraus, dass das programm, wenn die website geladen wurde einfach garnichts macht.
    website: pastehtml.com/view/bnw9s8n6q.html

    hat da jemand ne lösung?

    EDIT: ich weis, die variable updatecheck ist unnötig, sollte aber trotzdem klappen, oder?

    Superleo1810 schrieb:

    ich weis, die variable updatecheck ist unnötig, sollte aber trotzdem klappen, oder?

    Nöö.

    Aus Deinem Codeschnipsel geht nicht hervor, wo und wann Du den Text des Webbrowser Controls abrufst. Komplett geladen ist der WebBrowser (meistens) nur im seinem Document.Completed Event. Und selbst da ist es ratsam noch einmal auf Nothing abzuprüfen.

    Setze einfach mal einen Breakpoint mit dem Debugger auf Zeile 5, dann weisst Du was eigentlich im Document.Body.InnerText drinsteht.
    Erstmal:

    VB.NET-Quellcode

    1. Dim Version As Integer
    deklariert Version als Integer-Variable, was heißt, dass sie nur Ganzzahlen annehmen kann.
    Du weist ihr jedoch zwei Zeilen weiter einen String ("Beta v2 (12.02.12)") zu, was nicht gut gehen kann.
    Selbiges gilt für UpdateCheck.

    Zum Herunterladen der Datei ist in deinem Fall ein WebBrowser-Control die völlig falsche Wahl. Mit einem WebClient bist du da schon besser bedient.

    VB.NET-Quellcode

    1. Dim Client As New System.Net.WebClient
    2. Dim Version As String = "Beta v2 (12.02.12)"
    3. Dim UpdateCheck As String = Client.DownloadString("URL")
    4. If Version = UpdateCheck Then
    5. ' Update verfügbar
    6. Else
    7. ' kein Update verfügbar
    8. End If


    Und nebenbei: "Verfügbar" auf Englisch schreibt man mit "l", sprich "available". ;)
    Noch was: Mit Klammern vor Anführungszeichen kommt der Syntax-Highlighter des Forums nicht so ganz klar. Lass dich davon nicht irritieren.

    Samus Aran schrieb:


    Wie wärs, wenn du erstmal die Grundlagen lernst?

    ich habe mich auf die sachen, die ich für mein programm benötige, spezialisiert.
    aber du hast recht, vielleicht sollte ich wirklich mich mal ransetzt und sie lernen.
    aber das problem dabei ist, ich bin erst 14 und hab deswegen mit lernen in der schule schon sehr viel zu tun.
    also kann man diese kleinen programmierungen als vorbereitung für meinen berufswunsch betrachten.