Textdatei aus dem Internet (von Dropbox) auslesen und Text in Label oder Textbox anzeigen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von Leseratte.

    Textdatei aus dem Internet (von Dropbox) auslesen und Text in Label oder Textbox anzeigen

    Hallo zusammen,

    Ich programmiere derzeit ein wenig mit Visual Basic und habe ein kleines Programm entwickelt. Ich möchte in einer TextBox den Text einer Textdatei, die sich auf Dropbox befindet, angezeigt bekommen. Diese Textdatei möchte ich allerdings nicht direkt downloaden, sondern einfach auslesen. Ich habe auch schon einen Code gehabt. Nur dieser konnte kein "ä,ö und ü" anzeigen:

    VB.NET-Quellcode

    1. Dim NewsLesen As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("Link der Textdatei: https://dl.dropbox.com/...")
    2. Dim NewsAntworten As System.Net.HttpWebResponse = NewsLesen.GetResponse()
    3. Dim NewsSystem As System.IO.StreamReader = New System.IO.StreamReader(NewsAntworten.GetResponseStream)
    4. Dim NewsTxt As String = NewsSystem.ReadToEnd()
    5. TextBox3.Text = NewsTxt

    Ich habe dann auch noch diesen Code ausprobiert:

    VB.NET-Quellcode

    1. TextBox2.Text = IO.File.ReadAllText("Link der Textdatei: https://dl.dropbox.com/...")

    Aber dieser funktioniert überhaupt nicht. Vielleicht kann mir ja jemand helfen und einen Code schicken. Wäre echt super ;)
    LG Calamann


    Verschoben nach Internet- und Netzwerkprogrammierung
    -Artentus

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Calamann“ ()

    Ne ne. Den Code musst du in deinen Code einfügen:

    VB.NET-Quellcode

    1. Dim NewsLesen As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("Link der Textdatei: https://dl.dropbox.com/...")
    2. Dim NewsAntworten As System.Net.HttpWebResponse = NewsLesen.GetResponse()
    3. Dim NewsTxt As String
    4. Using sr As StreamReader = new StreamReader(NewsAntworten.GetResponseStream, Encoding.UTF8)
    5. NewsTxt = sr.ReadToEnd()
    6. End Using
    7. TextBox3.Text = NewsTxt
    KaskadekingDE on GitHub :)
    Bitte keine Fragen über Programmierung per PN! Dafür ist das Forum hier.

    Who cares? ¯\_(ツ)_/¯
    Hi,
    (bin der Gutefrage.net)

    Das geht noch einfacher:

    VB.NET-Quellcode

    1. Using web = New WebClient() With {.Proxy = Nothing}
    2. web.Encoding = Encoding.UTF8
    3. Dim meinText = web.DownloadString("URL")
    4. End Using
    Mfg
    Vincent

    Ahhh ok :D Sorry. Vielen vielen Dank euch beiden für die schnelle antwort. Werde sie beide sofort ausprobieren;)
    Also: KaskadekingDE : Bei deinem Code wird angezeigt, dass StreamReader nicht definiert wurde :/
    VincentTB: Bei deinem Code wird angezeigt, dass Encoding nicht deklariert wurde.

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

    Das habe ich versucht. Aber jetzt wird mir Encoding auch bei dem Code als Fehler markiert: Fehler 1 "Encoding" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden.
    Danke, das Video war sehr hilfreich :) Ich habe den Code jetzt abgeändert:

    VB.NET-Quellcode

    1. Dim NewsLesen As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("Link")
    2. Dim NewsAntworten As System.Net.HttpWebResponse = NewsLesen.GetResponse()
    3. Dim NewsTxt As String
    4. Using NewsSystem As IO.StreamReader = New IO.StreamReader(NewsAntworten.GetResponseStream, System.Text.Encoding.UTF8)
    5. NewsTxt = NewsSystem.ReadToEnd()
    6. End Using
    7. TextBox3.Text = NewsTxt

    Doch es werden immernoch kein ä,ö und ü angezeigt. Stattdessen zeigt er wie vorher ein Fragezeichen in eine raute.
    Versuch doch mal den Code aus meinem Post (hier)

    Sonst musst du mal ein bisschen durchprobieren, teste mal System.Text.Encoding.Default. Mit welchem Programm hast du die Textdatei denn erstellt?
    Mfg
    Vincent

    Ich hatte deinen Code auch ausprobiert, doch auch da wurden ä, ö und ü nicht angezeigt. Jetzt habe ich in deinen Code Encoding.default eingesetzt. Und es klappt !!! :D Vielen vielen Dank für eure Hilfe:) P.S. Ich habe die Datei mit dem Editor erstellt.
    Hier nochmal der vollständige Code, falls jemand anders das gleiche Problem hat:

    VB.NET-Quellcode

    1. Using web = New WebClient() With {.Proxy = Nothing}
    2. web.Encoding = Encoding.Default
    3. Dim NewsTxt = web.DownloadString("www durch dl ersetzen: https://dl.dropbox.com/textdatei.txt")
    4. TextBox3.Text = NewsTxt
    5. End Using

    Habe ich mir schon gedacht, der Editor codiert nach ANSI, was (meistens) dem Encoding Default entspricht. Du kannst den kompletten oberen Teil übrigens weglassen, also dass dann nur noch das bleibt:

    VB.NET-Quellcode

    1. Using web = New WebClient() With {.Proxy = Nothing, .Encoding = Encoding.Default}
    2. TextBox3.Text = web.DownloadString("www durch dl ersetzen: https://dl.dropbox.com/textdatei.txt")
    3. End Using
    Mfg
    Vincent

    nein nein nein ... :D ich möchte ... oh stimmt. sry du hast recht. Das geht ja gar nicht :DDDD Hab mal wieder zu wenig nachgedacht :/ Gibt es denn eine Möglichkeit, den Textboxinhalt im Internet zu speichern?
    Ja, natürlich. Du musst dir mal einen FTP-Server angucken. (ich empfehle immer kilu.de/ ). Das ist genau das, was du willst - Online Speicherplatz. Zum Hochladen brauchst du jedoch immer noch Benutzername + Passwort, was du niemals in ein Programm schreiben solltest. Deswegen ruft man dann von dem Programm aus ein PHP-Script auf, welches das für dich macht (das kann ich dir schnell schreiben). Was hast du eigentlich vor (vielleicht gibt es sogar etwas besseres für dich als FTP)?
    Mfg
    Vincent