IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[2.0][VB.NET] Récupérer contenu internet


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Par défaut [2.0][VB.NET] Récupérer contenu internet
    salut,

    j'ai une appli dans lquelle je souhaite afficher des infos qui viennent d'internet.

    j'utilise ce script (VB.net 2005)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
     
    Dim Web As New WebClient
    Dim Str As New StreamReader(Web.OpenRead("http://www.allocine.fr"))
    Dim ligne As String
    Dim trouve As Boolean
    txtweb.Text = Str.ReadLine
     
            Do
                ligne = Str.ReadLine()
                Console.WriteLine(ligne)
     
                If ligne.Contains("truc") Then
                  ...
     
                trouve = True
     
                End If
     
            Loop Until trouve = True Or ligne Is Nothing
            Str.Close()
    Le pb c'est que c très long avant d'obtenir ce que je veux.

    de plus, le traitement que je fais dans la boucle consiste a faire de la manip de chaine, donc c assez fastideux;

    Quelqu'un peut il me proposer une methode facile ou bien documentée pour récuperer des info d'une pages web ?

    Merci

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Ta technique est très bien, après pour les problèmes de lenteur, cela dépend de ta connexion et aussi du contenu exact de ta boucle

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Par défaut
    Merci.

    je pense pas que ca vienne de ma connexion (je suis en ADSL 6 M)
    Par contre c vrai que cela peut venir du traitement.

    N'y aurait-il pas un autre moyen que de faire un balayage par ligne ???

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Non, je ne pense pas.

    Tu peux toujours essayer de charger tout le contenu dans un variable de type string et ensuite, de lire, ligne à ligne, cette variable.

    A voir si cela est efficace.....

  5. #5
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Citation Envoyé par khamett
    Merci.

    je pense pas que ca vienne de ma connexion (je suis en ADSL 6 M)
    Par contre c vrai que cela peut venir du traitement.

    N'y aurait-il pas un autre moyen que de faire un balayage par ligne ???
    Il est bien ton code juste pour faire plus beau :

    Code VB.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim ligne As String
    While Not rdr.EndOfStream
            ligne = rdr.ReadLine()
            If ligne.Contains("truc") Then
     
                 Exit While
            End If
    End While

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Par défaut
    Re,

    Merci Mehdi pour ton astuce,

    la page s'ouvre quasi instantané...

    C vrai que c plus clair...

    par contre, quand je met à l'interieur de ma boucle, une conditionnelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If ligne.Contains("truc") Then
                        'MsgBox(ligne.Substring("truc", 14))
                        Microsoft.VisualBasic.Right(ligne, 6)
                        Exit While
                    End If

    j'obtiens ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Une exception de première chance de type 'System.InvalidCastException' s'est produite dans Microsoft.VisualBasic.dll
    Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans truc.exe
    il me conseille de verifier la propriété "innerexception", mais moi ca ne me dit rien...

    Merci encore

  7. #7
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Alors là, désolé mais les fonctions VB, je ne connais pas donc il faut espérer que medhi saura t'aider plus que moi

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Par défaut
    salut,

    c'est bon j'ai trouvé mon erreur...

    j'ai refais ma condition, ca fonctionne mais j'en suis pas tres satisfait.

    Je vous explique:
    dans ma boucle, il y a plusieurs conditions, et pour chaque condition, un traitement. Dans chaque if j'ai du mettre un
    "exit while" et surtout un "str.close" sinon ca merdait, jusqu'ici ca vous parait bien ??

    Mon pb est que je manipule des chaines pour en extraire un nombre, or j'utilise pour l'instant un "mid", puis un replace...

    mais le pb c 'est que le nombre de chifrre peut varier et donc la traitement peut être erronné.
    j'avais pensé le remplacer par un boucle qui balaie caractère par caractère et enregistrer les chiffres dans une variable.

    Qu'en pensez vous ?

    Merci d'avance

  9. #9
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Désolé mais j'ai rien compris, si tu nous montrais ton code ?

  10. #10
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par mehdi_tn
    Désolé mais j'ai rien compris, si tu nous montrais ton code ?
    Pareil, je suis un peu perdu là

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Par défaut
    lol

    désolé...

    bon voici un bout de code que j'ai mis dans mon "while" celui que Mehdi m'a donné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    If ligne.Contains("bidule") And cbotruc.Text = cbotruc.Items(1) Then
                        machin = Mid(ligne, 67, 6)
                        machin = Replace(machin, ".", ",")
                        txtbidule.Text = machin
                        Str.Close()
                        Exit Sub
    voili voilou...

    J'espère que c plus clair...

    PS: j'ai posté une autre question rapport à un pb sur un "tooltip" dont la propriété "isballoon" empêche son affichage depuis que j'ai réinstallé mon système... Si vous aviez un tuyau ce serait sympa...

  12. #12
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Oui l'dée est de passer par les expressions regulieres, mais il faut expliciter le format de la donner à extraire.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/05/2011, 10h31
  2. [VB.Net]Une fenêtre qui montre le contenu d’une table.
    Par yassin101 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/11/2006, 21h32
  3. Réponses: 4
    Dernier message: 30/06/2006, 15h26
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo