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

VB.NET Discussion :

Aide avec NumericUpDown et WebClient


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Décembre 2002
    Messages : 28
    Points : 27
    Points
    27
    Par défaut Aide avec NumericUpDown et WebClient
    Bonjour, je met ici mon code pour expliquer mon probleme.

    Code vb.net : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    Imports System.Text.RegularExpressions
    Imports System.Net
    Imports System.Threading
    Imports System.IO
     
    Public Class Form1
     
        Dim savefile As Object
        Dim ListBox1 As Object
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            For i = 0 To NumericUpDown1.Value
                ThreadPool.QueueUserWorkItem(New WaitCallback(Sub() GetNames(i)))
            Next
        End Sub
     
        Private Sub GetNames(ByVal P As Integer)
            Dim website As String = "http://www.t411.me/torrents/search/?page="
            Dim source As String = New WebClient().DownloadString(website & NumericUpDown1.Value)
            Dim r As New Regex(">(.*)&nbsp;<span")
            For Each m As Match In r.Matches(source)
                Dim res As String = m.Value.Split("""")(0)
     
                Invoke(New MethodInvoker(Sub() nameList.Items.Add(res)))
            Next
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim StreamW As New IO.StreamWriter("C:\Users\Tazz\Desktop\1.txt")
            For i = 0 To nameList.Items.Count - 1
                StreamW.WriteLine(nameList.Items.Item(i))
            Next
     
            StreamW.Close()
            StreamW.Dispose()
            MsgBox("DONE")
        End Sub
     
        Private Sub nameList_SelectedIndexChanged(sender As Object, e As EventArgs) Handles nameList.SelectedIndexChanged
     
        End Sub
     
        Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown1.ValueChanged
     
        End Sub
     
    End Class

    Donc voila mon probleme est que quand je met par exemple 5 dans la case de NumericUpDown et bien le program va me récuperer uniquement la page 5, alors que j'aimerais que le 5 coréspond au nombre de page à récuperer et non pas au numéro de la page à récuperer. J'aimerais que si je met 5 cela me récuper les pages 0, 1, 2, 3, 4 et 5.

    Avez vous une solution svp. Merci

  2. #2
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Citation Envoyé par slaborde Voir le message
    Bonjour, je met ici mon code pour expliquer mon probleme.

    Code vb.net : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    Imports System.Text.RegularExpressions
    Imports System.Net
    Imports System.Threading
    Imports System.IO
     
    Public Class Form1
     
        Dim savefile As Object
        Dim ListBox1 As Object
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            For i = 0 To NumericUpDown1.Value
                ThreadPool.QueueUserWorkItem(New WaitCallback(Sub() GetNames(i)))
            Next
        End Sub
     
        Private Sub GetNames(ByVal P As Integer)
            Dim website As String = "http://www.t411.me/torrents/search/?page="
            Dim source As String = New WebClient().DownloadString(website & NumericUpDown1.Value)
            Dim r As New Regex(">(.*)&nbsp;<span")
            For Each m As Match In r.Matches(source)
                Dim res As String = m.Value.Split("""")(0)
     
                Invoke(New MethodInvoker(Sub() nameList.Items.Add(res)))
            Next
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim StreamW As New IO.StreamWriter("C:\Users\Tazz\Desktop\1.txt")
            For i = 0 To nameList.Items.Count - 1
                StreamW.WriteLine(nameList.Items.Item(i))
            Next
     
            StreamW.Close()
            StreamW.Dispose()
            MsgBox("DONE")
        End Sub
     
        Private Sub nameList_SelectedIndexChanged(sender As Object, e As EventArgs) Handles nameList.SelectedIndexChanged
     
        End Sub
     
        Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown1.ValueChanged
     
        End Sub
     
    End Class

    Donc voila mon probleme est que quand je met par exemple 5 dans la case de NumericUpDown et bien le program va me récuperer uniquement la page 5, alors que j'aimerais que le 5 coréspond au nombre de page à récuperer et non pas au numéro de la page à récuperer. J'aimerais que si je met 5 cela me récuper les pages 0, 1, 2, 3, 4 et 5.

    Avez vous une solution svp. Merci

    Ca se jouera dans ta méthode GetNames, actuellement (après lecture en diagonale, me pardonner si j'ai mal compris) la valeur rentrer dans le NUD est concaténé à l'url de ta page, donc la logique veut que tu ne travailles que sur cette page, il va falloir boucler pour les pages de 0 à la valeur du NUD. Par exemple :

    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
        Private Sub GetNames(ByVal P As Integer)
            Dim website As String = "http://www.t411.me/torrents/search/?page="
            Dim source As String
            Dim r As New Regex(">(.*)&nbsp;<span")
     
            For i As Integer = 0 To NumericUpDown1.value
                source = New WebClient().DownloadString(website & i)
     
                For Each m As Match In r.Matches(source)
                    Dim res As String = m.Value.Split("""")(0)
     
                    Invoke(New MethodInvoker(Sub() nameList.Items.Add(res)))
                Next
            Next
        End Sub
    Et sinon, je demande encore à quoi sert le paramètre P de ta méthode vu que tu ne t'en sers pas ...
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Décembre 2002
    Messages : 28
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par _Ez3kiel Voir le message
    Ca se jouera dans ta méthode GetNames, actuellement (après lecture en diagonale, me pardonner si j'ai mal compris) la valeur rentrer dans le NUD est concaténé à l'url de ta page, donc la logique veut que tu ne travailles que sur cette page, il va falloir boucler pour les pages de 0 à la valeur du NUD. Par exemple :

    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
        Private Sub GetNames(ByVal P As Integer)
            Dim website As String = "http://www.t411.me/torrents/search/?page="
            Dim source As String
            Dim r As New Regex(">(.*)&nbsp;<span")
     
            For i As Integer = 0 To NumericUpDown1.value
                source = New WebClient().DownloadString(website & i)
     
                For Each m As Match In r.Matches(source)
                    Dim res As String = m.Value.Split("""")(0)
     
                    Invoke(New MethodInvoker(Sub() nameList.Items.Add(res)))
                Next
            Next
        End Sub
    Et sinon, je demande encore à quoi sert le paramètre P de ta méthode vu que tu ne t'en sers pas ...

    Je te remerci Ez3kiel. J'aimerais lire en diagonal comme toi. Tu as aranger mon probleme en plus tu as répondu rapidement, merci beaucoup.
    Pour le parametre P je sais pas je fais des test, j'ai beaucoup bidouiller avant d'en arrivé la. Je m'y connais pas télement en vb donc j'ai fais pas mal d'essai en prenant des truc à droite et à gauche. Rien que pour pouvoir enregistrer dans un fichier texte je te raconte pas la galere.

    J'aurais une autre question si tu me le permet, tu saurais comment je dois faire si la page est au milieu de l'url par exemple

    http://exemple/test1/2/test2/test3/test4

    ici la page est le 2 entre /test1/ et /test2/

    Merci.

  4. #4
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Citation Envoyé par slaborde Voir le message
    Je te remerci Ez3kiel. J'aimerais lire en diagonal comme toi. Tu as aranger mon probleme en plus tu as répondu rapidement, merci beaucoup.
    Pour le parametre P je sais pas je fais des test, j'ai beaucoup bidouiller avant d'en arrivé la. Je m'y connais pas télement en vb donc j'ai fais pas mal d'essai en prenant des truc à droite et à gauche. Rien que pour pouvoir enregistrer dans un fichier texte je te raconte pas la galere.

    J'aurais une autre question si tu me le permet, tu saurais comment je dois faire si la page est au milieu de l'url par exemple

    http://exemple/test1/2/test2/test3/test4

    ici la page est le 2 entre /test1/ et /test2/

    Merci.
    Pas de quoi. ^^

    Pour ce qui est de ton autre question ... Ca dépend vraiment de l'url, selon si elle est fixe (et le reste) ou non. Est-ce qu'elle gardera toujours la même forme ? Ca peut se faire avec un regex en jouant un peu mais je pourrais pas te le faire je suis une bille pour écrire des regex.
    Tu peux également t'aider de la classe Uri pour récupérer certaines parties de l'URL, et te baser sur sur la fonction Split() avec le Slash comme char séparateur,c'est un peu du bidouillage mais bon ... en exemple :

    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
     
                Dim tmp As New Uri("http://exemple/test1/2/test2/test3/test4")
     
                MsgBox(tmp.AbsolutePath) 'retourne /test1/2/test2/test3/test4
     
                Dim tableauTmp As String() = tmp.AbsolutePath.Split("/")
     
     
                For i As Integer = 0 To tableauTmp.Count - 1
                    MsgBox(tableauTmp(i))
     
                    'retourne :
                    '- test1
                    '- 2
                    '- test2
                    '- test3
                    '- test4
                Next
    Pour cet exemple il ne te reste plus qu'à tester si tableauTmp(i) commence par la chaîne "test" ou non, mais ça reste propre à ton exemple, à voir avec la vraie URL.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Décembre 2002
    Messages : 28
    Points : 27
    Points
    27
    Par défaut
    Hi Ez3kiel. Merci encore pour ta réponse. Cela va beaucoup m'aider.

    Pour pas tous mélanger (au cas ou ca peut servir à d'autre), je vais passer le sujet comme resolu et en ouvrir un autre pour un autre probleme que je rencontre actuelement avec la ComboBox.

  6. #6
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    De rien et oui bonne initiative.

    Bon code à toi.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide avec Regexp::Assemble
    Par mobscene dans le forum Modules
    Réponses: 5
    Dernier message: 11/04/2007, 12h39
  2. [ASA] J'ai besoin d'aide avec sybase et vb6 svp !!
    Par tibo830 dans le forum SQL Anywhere
    Réponses: 7
    Dernier message: 12/05/2006, 10h09
  3. Besoin d'aide avec TinyXML
    Par Clad3 dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 15/08/2005, 18h20
  4. Réponses: 2
    Dernier message: 29/08/2003, 17h52
  5. Besoin d'aide avec postgresql sous windows NT
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/07/2003, 08h29

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