Comment afficher dans une textbox le contenu d'un document txt en ligne...

Résolu
julien2424 Messages postés 76 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 24 avril 2012 - 20 juin 2009 à 20:38
julien2424 Messages postés 76 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 24 avril 2012 - 21 juin 2009 à 10:56
Bonjour à toute l'équipe de vbfrance.

Je suis totalement débutant  et j'ai une question.
 J'aimerai savoir si il est possible d'afficher dans une TextBox, dès l'ouverture d'un programme, le contenu d'un document qui se trouve stocker sur un serveur en ligne?
Je pourrai publier un texte et ainsi le diffuser sur mon programme comme une pub.

J'ai déjà mis en place ce code, mais ça ne marche pas... 

   Private Sub TextBox1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        FileOpen(1, "http://pagesperso-orange.fr/jmcreations/SM_pub.txt", OpenMode.Input)

    End Sub
End Class

Je sais que c'est pas bon du tout, mais j'aimerai qu'on m'aide à concevoir un code correct.
D'autre part y'a t'il moyen de faire défiler ce texte, comme une bannière?

Cordialement à tous
Excellent Week-end

5 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
20 juin 2009 à 22:58
Bonjour,

lol, ouais effectivement Inet est un composant COM obsolète en .Net

Pour lire le contenu d'un document, il faut utiliser l'espace de nom "System.Net" du framework, t'as de la chance j'ai une fonction toute prête (issue d'une de mes sources) qui permet de lire le contenu d'un fichier sur le web via le protocole HTTP.

Private Const USER_AGENT = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
Private Const ACCEPT = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-silverlight, */*"

Function GetHTMLPage(ByVal RequestUrl As String) As String
    Dim ReadStream As IO.StreamReader
    Try
        Dim URI As New System.Uri(RequestUrl)
        Dim HTTP As System.Net.HttpWebRequest = _
            System.Net.WebRequest.CreateDefault(URI)
        HTTP.Accept = ACCEPT
        HTTP.UserAgent = USER_AGENT
        HTTP.KeepAlive = True

        Dim HtmlCode AsString = ""
        Dim hwebresponse As System.Net.WebResponse = _
            HTTP.GetResponse
        ReadStream = New IO.StreamReader(hwebresponse.GetResponseStream)
        Dim line As String 
        Do
            line = ReadStream.ReadLine()
            HtmlCode += vbCr & line
            Application.DoEvents() 
        Loop Until line Is Nothing 
        Return HtmlCode 
    Catch
            Return "" 
    End Try
    ReadStream.Dispose()
End Function

PS: tu n'est pas obligé de mettre un format text, tu peu aussi bien par exemple, utiliser un richtext avec un fichier au format rtf, ou aussi passer par un navigateur (composant browser) et afficher une page web dans ton application dirrectement. 

@+ Mayzz.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
20 juin 2009 à 23:34
Non en fait, ce code est à placer au sein de ton formulaire et à ne pas modifier, il faut juste l'appeler comme ceci :

TextBox1.Text = GetHTMLPage (http://www.monurl.com)

Bien entendue il ya un temps de téléchargement... et la fonction est synchrone (même si elle ne freez pas le programme)

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
3
julien2424 Messages postés 76 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 24 avril 2012
20 juin 2009 à 22:16
Finalement j'ai trouvé un code

        Dim Url As String

        Url = "http://pagesperso-orange.fr/jmcreations/SM_pub.txt"
        TextBox1.Text = Inet.OpenURL(Url)

    End Sub

Sauf que je travail sous Visual Studio 2008, et ce controle n'existe plus sous cette version, et même si on tente de le rajouté à côté, ça ne marche pas.
Comment faire?
0
julien2424 Messages postés 76 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 24 avril 2012
20 juin 2009 à 23:17
Merci à toi, ton code m'est très précieux ^^

Mais comme je suis débutant, inutile de te dire, que je ne sais pas vraiment le remplir.
Je ne sais pas comment introduire ma textbox1 dans ce code, ainsi que mon adresse web...

Voila, au hasard ce que j'ai crée sur la base de ton produit:

   Private Const USER_AGENT = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
    Private Const ACCEPT = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-silverlight, */*"
    Function fenetre1_Load(ByVal RequestUrl As String) As String

        Dim ReadStream As IO.StreamReader
        Try
            Dim URI As New System.Uri(RequestUrl)
            Dim HTTP As System.Net.HttpWebRequest = _
                System.Net.WebRequest.CreateDefault(URI)
            HTTP.Accept = ACCEPT
            HTTP.UserAgent = USER_AGENT
            HTTP.KeepAlive = True

            Dim HtmlCode As String = "http://pagesperso-orange.fr/jmcreations/SM_pub.txt"
            Dim hwebresponse As System.Net.WebResponse = _
                HTTP.GetResponse
            ReadStream = New IO.StreamReader(hwebresponse.GetResponseStream)
            Dim line As String
            Do
                line = ReadStream.ReadLine()
                HtmlCode += vbCr & line
                Application.DoEvents()
            Loop Until line Is Nothing
            Return HtmlCode
        Catch
            Return "http://pagesperso-orange.fr/jmcreations/SM_pub.txt"
        End Try
        ReadStream.Dispose()
    End Function

End Class
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
julien2424 Messages postés 76 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 24 avril 2012
21 juin 2009 à 10:56
Un grand merci Mayzz ^^ pour ce travail et ton aide!
Ca marche à merveille!

Jules
0
Rejoignez-nous