none
Comment lire le contenu d'un fichier txt sur le net ? RRS feed

  • Question

  • Bonjour,

    Comment aller lire un fichier txt (compteur.txt) sur le Net, soit directement, soit en lançant la page où sera afficher la valeur du fichier compteur.txt via un webBrowser (je préfère la première solution), exemple :

    retour = Va_lire_contenu(MDP, protocole://domaine.free.fr\compteur.txt)

    Merci d'avoir l'amabilité de me mettre un bout de code fonctionnel car je n'y connais rien en la matière, soit en commande directe, soit à placer dans le webBrowser ?

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    samedi 22 septembre 2012 18:00

Réponses

  • Bonjour Lyamine,

    Merci, mais n'aurais tu pas un code qui se loge totaleent dans le load par exemple (sans fonction) ?

    Je ne sais pas non plus comment récupérer ce que retourne la fonction (mais bon, si ça passe en code en tant que procédure ce n'est plus utile...

    Sinon, est-ce bien remplit, voici le code :

    Option Explicit On
    Public Class Form1
    
      Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Call Va_lire_contenu("irolog", "leMotDePasse", "http://irolog.free.fr/compteur.txt")
      End Sub
    
      Function Va_lire_contenu(user As String, mdp As String, url As String) As String
        Dim content As String = "" 'valeur à retourner
        Try
          Using client As System.Net.WebClient = New System.Net.WebClient()
            'A utiliser si besoin d'une authentification basic
            If Not String.IsNullOrEmpty(user) Or Not String.IsNullOrEmpty(mdp) Then
              client.Credentials = New System.Net.NetworkCredential(user, mdp) 'A utiliser si besoin d'une authentification basic
            End If
            'récupère le fichier TXT
            content = client.DownloadString(url)
          End Using
        Catch ex As System.Net.WebException
          content = ex.ToString()
        End Try
        Return content
      End Function
    
    End Class

    Un code dans ce genre ?

      Sub appel()
        Dim utilisateur = "irolog"
        Dim motDePasse = "?"
        Dim adresseHttp = "http://irolog.free.fr/compteur.txt"
        Dim valeurRetour As String = ""
        Try
          Using client As System.Net.WebClient = New System.Net.WebClient()
            If Not String.IsNullOrEmpty(utilisateur) Or Not String.IsNullOrEmpty(motDePasse) Then
              client.Credentials = New System.Net.NetworkCredential(utilisateur, motDePasse)
            End If
            TextBox1.Text = valeurRetour = client.DownloadString(adresseHttp)
          End Using
        Catch ex As System.Net.WebException
          MsgBox("ERREUR" & vbLf & Err.Number & vbLf & Err.Description, vbExclamation)
        End Try
      End Sub

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire



    Autant pour moi, désolé je n'ai pas mis le code d'utilisation.

    Donc pour faire simple, la fonction retourne directement le contenu de la page. Si vous souhaitez l'utiliser dans l'évenement Form_Load, faire comme suit :

    'En utilisant ma fonction :
    Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        TextBox1.Text = Va_lire_contenu("irolog", "leMotDePasse", "http://irolog.free.fr/compteur.txt")
    End Sub
    
    
    'Sinon avec la procédure appel()
    Sub appel()
        Dim utilisateur = "irolog"
        Dim motDePasse = "?"
        Dim adresseHttp = "http://irolog.free.fr/compteur.txt"
        Try
          Using client As System.Net.WebClient = New System.Net.WebClient()
            If Not String.IsNullOrEmpty(utilisateur) Or Not String.IsNullOrEmpty(motDePasse) Then
              client.Credentials = New System.Net.NetworkCredential(utilisateur, motDePasse)
            End If
            TextBox1.Text = client.DownloadString(adresseHttp)
          End Using
        Catch ex As System.Net.WebException
          MsgBox("ERREUR" & vbLf & Err.Number & vbLf & Err.Description, vbExclamation)
        End Try
    End Sub
    
    
    'Code dans le Form_Load
    Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim utilisateur = "irolog"
        Dim motDePasse = "?"
        Dim adresseHttp = "http://irolog.free.fr/compteur.txt"
        Try
          Using client As System.Net.WebClient = New System.Net.WebClient()
            If Not String.IsNullOrEmpty(utilisateur) Or Not String.IsNullOrEmpty(motDePasse) Then
              client.Credentials = New System.Net.NetworkCredential(utilisateur, motDePasse)
            End If
            TextBox1.Text = client.DownloadString(adresseHttp)
          End Using
        Catch ex As System.Net.WebException
          MsgBox("ERREUR" & vbLf & Err.Number & vbLf & Err.Description, vbExclamation)
        End Try
    End Sub

    L'avantage de la fonction est qu'elle évite la redondance et peut être utilisée pour d'autre demande d'URL.

    Je vous informe que l'instruction "Call" n'est plus une obligation. Je vous conseille de ne plus l'utilisé si jamais vous souhaitez passer sur un autre langage (évite les mauvaises habitudes).

    Hope this helps


    Merci de valider par "Proposer comme réponse" si celle-ci répond a votre demande !



    • Modifié Lyamine dimanche 23 septembre 2012 12:50
    • Marqué comme réponse EhJoe dimanche 23 septembre 2012 17:16
    dimanche 23 septembre 2012 12:41
  • Lyamine, suite ...

    Ben en plus court ça marche aussi :

    Dim client As System.Net.WebClient = New System.Net.WebClient()
    TextBox1.Text = client.DownloadString("http://irolog.free.fr/compteur.txt")
    

    Donc résolu, merci beaucoup, cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    • Marqué comme réponse EhJoe dimanche 23 septembre 2012 17:16
    dimanche 23 septembre 2012 17:16

Toutes les réponses

  • Bonjour,

    Voici le code de votre demande :

        ''' <summary>
        ''' Ce connecte à une url HTTP et retourne le contenu.
        ''' La fonction peut utiliser Basic Authentication permettant de ce connecter sur un site nécéssitant une authentification simple.
        ''' </summary>
        ''' <param name="user">Nom d'utisateur</param>
        ''' <param name="mdp">Mot de passe de l'utilisateur</param>
        ''' <param name="url">Adresse Web à récupérer</param>
        ''' <returns>Chaine de contenu</returns>
        ''' <remarks></remarks>
        Function Va_lire_contenu(user As String, mdp As String, url As String) As String
            Dim content As String = "" 'valeur à retourner
            Try
                Using client As WebClient = New WebClient()
                    'A utiliser si besoin d'une authentification basic
                    If Not String.IsNullOrEmpty(user) Or Not String.IsNullOrEmpty(mdp) Then
                        client.Credentials = New NetworkCredential(user, mdp) 'A utiliser si besoin d'une authentification basic
                    End If
                    'récupère le fichier TXT
                    content = client.DownloadString(url)
                End Using
            Catch ex As WebException
                content = ex.ToString()
            End Try
            Return content
        End Function

    Est-ce que cela répond à vos attentes ?

    Ensuite si vous avez d'autres questions en la matière n'hésitez pas

    Cordialement



    Merci de valider par "Proposer comme réponse" si celle-ci répond a votre demande !


    • Modifié Lyamine dimanche 23 septembre 2012 11:01
    dimanche 23 septembre 2012 11:00
  • Bonjour Lyamine,

    Merci, mais n'aurais tu pas un code qui se loge totaleent dans le load par exemple (sans fonction) ?

    Je ne sais pas non plus comment récupérer ce que retourne la fonction (mais bon, si ça passe en code en tant que procédure ce n'est plus utile...

    Sinon, est-ce bien remplit, voici le code :

    Option Explicit On
    Public Class Form1
    
      Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Call Va_lire_contenu("irolog", "leMotDePasse", "http://irolog.free.fr/compteur.txt")
      End Sub
    
      Function Va_lire_contenu(user As String, mdp As String, url As String) As String
        Dim content As String = "" 'valeur à retourner
        Try
          Using client As System.Net.WebClient = New System.Net.WebClient()
            'A utiliser si besoin d'une authentification basic
            If Not String.IsNullOrEmpty(user) Or Not String.IsNullOrEmpty(mdp) Then
              client.Credentials = New System.Net.NetworkCredential(user, mdp) 'A utiliser si besoin d'une authentification basic
            End If
            'récupère le fichier TXT
            content = client.DownloadString(url)
          End Using
        Catch ex As System.Net.WebException
          content = ex.ToString()
        End Try
        Return content
      End Function
    
    End Class

    Un code dans ce genre ?

      Sub appel()
        Dim utilisateur = "irolog"
        Dim motDePasse = "?"
        Dim adresseHttp = "http://irolog.free.fr/compteur.txt"
        Dim valeurRetour As String = ""
        Try
          Using client As System.Net.WebClient = New System.Net.WebClient()
            If Not String.IsNullOrEmpty(utilisateur) Or Not String.IsNullOrEmpty(motDePasse) Then
              client.Credentials = New System.Net.NetworkCredential(utilisateur, motDePasse)
            End If
            TextBox1.Text = valeurRetour = client.DownloadString(adresseHttp)
          End Using
        Catch ex As System.Net.WebException
          MsgBox("ERREUR" & vbLf & Err.Number & vbLf & Err.Description, vbExclamation)
        End Try
      End Sub
    

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire



    • Modifié EhJoe dimanche 23 septembre 2012 12:30 Un rajout
    dimanche 23 septembre 2012 12:22
  • Bonjour Lyamine,

    Merci, mais n'aurais tu pas un code qui se loge totaleent dans le load par exemple (sans fonction) ?

    Je ne sais pas non plus comment récupérer ce que retourne la fonction (mais bon, si ça passe en code en tant que procédure ce n'est plus utile...

    Sinon, est-ce bien remplit, voici le code :

    Option Explicit On
    Public Class Form1
    
      Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Call Va_lire_contenu("irolog", "leMotDePasse", "http://irolog.free.fr/compteur.txt")
      End Sub
    
      Function Va_lire_contenu(user As String, mdp As String, url As String) As String
        Dim content As String = "" 'valeur à retourner
        Try
          Using client As System.Net.WebClient = New System.Net.WebClient()
            'A utiliser si besoin d'une authentification basic
            If Not String.IsNullOrEmpty(user) Or Not String.IsNullOrEmpty(mdp) Then
              client.Credentials = New System.Net.NetworkCredential(user, mdp) 'A utiliser si besoin d'une authentification basic
            End If
            'récupère le fichier TXT
            content = client.DownloadString(url)
          End Using
        Catch ex As System.Net.WebException
          content = ex.ToString()
        End Try
        Return content
      End Function
    
    End Class

    Un code dans ce genre ?

      Sub appel()
        Dim utilisateur = "irolog"
        Dim motDePasse = "?"
        Dim adresseHttp = "http://irolog.free.fr/compteur.txt"
        Dim valeurRetour As String = ""
        Try
          Using client As System.Net.WebClient = New System.Net.WebClient()
            If Not String.IsNullOrEmpty(utilisateur) Or Not String.IsNullOrEmpty(motDePasse) Then
              client.Credentials = New System.Net.NetworkCredential(utilisateur, motDePasse)
            End If
            TextBox1.Text = valeurRetour = client.DownloadString(adresseHttp)
          End Using
        Catch ex As System.Net.WebException
          MsgBox("ERREUR" & vbLf & Err.Number & vbLf & Err.Description, vbExclamation)
        End Try
      End Sub

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire



    Autant pour moi, désolé je n'ai pas mis le code d'utilisation.

    Donc pour faire simple, la fonction retourne directement le contenu de la page. Si vous souhaitez l'utiliser dans l'évenement Form_Load, faire comme suit :

    'En utilisant ma fonction :
    Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        TextBox1.Text = Va_lire_contenu("irolog", "leMotDePasse", "http://irolog.free.fr/compteur.txt")
    End Sub
    
    
    'Sinon avec la procédure appel()
    Sub appel()
        Dim utilisateur = "irolog"
        Dim motDePasse = "?"
        Dim adresseHttp = "http://irolog.free.fr/compteur.txt"
        Try
          Using client As System.Net.WebClient = New System.Net.WebClient()
            If Not String.IsNullOrEmpty(utilisateur) Or Not String.IsNullOrEmpty(motDePasse) Then
              client.Credentials = New System.Net.NetworkCredential(utilisateur, motDePasse)
            End If
            TextBox1.Text = client.DownloadString(adresseHttp)
          End Using
        Catch ex As System.Net.WebException
          MsgBox("ERREUR" & vbLf & Err.Number & vbLf & Err.Description, vbExclamation)
        End Try
    End Sub
    
    
    'Code dans le Form_Load
    Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim utilisateur = "irolog"
        Dim motDePasse = "?"
        Dim adresseHttp = "http://irolog.free.fr/compteur.txt"
        Try
          Using client As System.Net.WebClient = New System.Net.WebClient()
            If Not String.IsNullOrEmpty(utilisateur) Or Not String.IsNullOrEmpty(motDePasse) Then
              client.Credentials = New System.Net.NetworkCredential(utilisateur, motDePasse)
            End If
            TextBox1.Text = client.DownloadString(adresseHttp)
          End Using
        Catch ex As System.Net.WebException
          MsgBox("ERREUR" & vbLf & Err.Number & vbLf & Err.Description, vbExclamation)
        End Try
    End Sub

    L'avantage de la fonction est qu'elle évite la redondance et peut être utilisée pour d'autre demande d'URL.

    Je vous informe que l'instruction "Call" n'est plus une obligation. Je vous conseille de ne plus l'utilisé si jamais vous souhaitez passer sur un autre langage (évite les mauvaises habitudes).

    Hope this helps


    Merci de valider par "Proposer comme réponse" si celle-ci répond a votre demande !



    • Modifié Lyamine dimanche 23 septembre 2012 12:50
    • Marqué comme réponse EhJoe dimanche 23 septembre 2012 17:16
    dimanche 23 septembre 2012 12:41
  • Lyamine, suite ...

    Ben en plus court ça marche aussi :

    Dim client As System.Net.WebClient = New System.Net.WebClient()
    TextBox1.Text = client.DownloadString("http://irolog.free.fr/compteur.txt")
    

    Donc résolu, merci beaucoup, cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    • Marqué comme réponse EhJoe dimanche 23 septembre 2012 17:16
    dimanche 23 septembre 2012 17:16
  • Lyamine, suite ...

    Ben en plus court ça marche aussi :

    Dim client As System.Net.WebClient = New System.Net.WebClient()
    TextBox1.Text = client.DownloadString("http://irolog.free.fr/compteur.txt")

    Donc résolu, merci beaucoup, cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire



    Oui vous pouvez faire en une ligne mais lorsque l'url ne sera pas accessible, une exception sera levée donc risque de plantage de l'application lors de la mise en prod.

    Merci de valider par "Proposer comme réponse" si celle-ci répond a votre demande !

    dimanche 23 septembre 2012 17:29
  • Suite... ter...

    Pas de problème je gérerai l'erreur, je ne pensais pas que c'était si simple...

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    dimanche 23 septembre 2012 18:01