Accueil > > > RECUPERER UNE COMBOBOX D'INTERNET
RECUPERER UNE COMBOBOX D'INTERNET
Information sur la source
Description
Salut ! Voila , la derniere fois , je me suis trouve dans l'obligation de creer une combobox qui devait fournir un grand choix de pays a selectioner .Le probleme etait que rentrer plus de 50 entree manuellement c'etait long et ennuyeux . Alors je me suis dis c'est dommage que je puisse pas prendre une deja toute faite d'un site internet .Alors j'ai fait ce petit programme qui recupere une combobox dans une url donne , a condition qu'elle soit en HTML . J'ai updater ce post pour afficher direct la source pour ceux qui ont la fleme de telecharger le zip .Dites ce que vous en pensez .Merci.
Source
- Dim Url As String
- Dim Analyze As String
- Dim Test3, num, N As Integer
- Dim c As Long
- Dim Test, cboSettings, cboName, Nam As String
-
- Private Sub cmdTest_Click()
- 'Num est le nombre de caracteres qui vont etre lus avec Mid$
- num = 10000
- 'On met qqchose dans Nam pour la boucle de la sub Read()
- Nam = "something"
- 'On recup l'URL
- Url = txtURL.Text
- 'On recupere la source
- Analyze = Inet1.OpenURL(Url)
- 'On rearrange le code en supprimant les retours a la ligne les triple et doubles _
- espaces et sur en decolant les balises
- Analyze = Replace(Analyze, Chr(10), "", 1, -1, 0)
- Analyze = Replace(Analyze, Chr(13), "", 1, -1, 0)
- Analyze = Replace(Analyze, Chr(11), "", 1, -1, 0)
- Analyze = Replace(Analyze, Chr(12), "", 1, -1, 0)
- Analyze = Replace(Analyze, Chr(9), "", 1, -1, 0)
- Analyze = Replace(Analyze, Chr(8), "", 1, -1, 0)
- Analyze = Replace(Analyze, "><", "> <", 1, -1, 0)
- Analyze = Replace(Analyze, " ", " ", 1, -1, 0)
- Analyze = Replace(Analyze, " ", " ", 1, -1, 0)
- 'On analyse la source
- 'On se "deplace dans la source jusqu'a trouver <select ( qui est le debut de la _
- combobox HTML )
- Test = InStr(1, Analyze, "<select")
- 'cboSettings contient les "num" caracteres apres select
- cboSettings1 = Mid(Analyze, Test, num)
- 'Apres on se deplace dans cboSettings pour trouver le nom de la combobox _
- et on ajoute 6 qui correspnd au nombres de caracteres contenus dans _
- ' name=" '
- Test3 = InStr(1, cboSettings1, "name") + 6
- 'Ici on lit le nom de la cbobox
- cboSettings = Mid(cboSettings1, Test3, num)
- 'La on cherche la derniere ' " ' qui indique la fin du nom de la cbobox
- Test3 = InStr(1, cboSettings, Chr(34)) - 1
- 'Et ensuite on enregistre sont nom
- cboName = Left(cboSettings, Test3)
- 'On l'affiche
- lblCboName.Caption = cboName
- 'Ensuite on se deplace jusqu'a la premiere balise option qui indique la premiere _
- entree de la cbobox
- Test = InStr(Test3, cboSettings, "<option")
- 'On cherche ou la balise se ferme
- Test = InStr(Test, cboSettings, ">")
- 'On enregistre Test dans N pour pouvoir travailler avec
- N = Test
- Call Read
- i = 0
- 'Avec cette boucle on se deplace a chaque fois jusqu'a l'autre balise
- '"i" sert d'une sorte d'index pour la comboBox
- Do Until i = 100000
- Test2 = InStr((N - 2), cboSettings, "</option")
- 'S'il n'y a plus de balise on enleve la derniere entree de la combobox _
- qui est vide a cause de la boucle , et on sort de la sub .Sinon on sort _
- de la balise "</option>" en ajoutant 9 et on va a l'autre "<option>" _
- Et on appel Read() pour enregistrer la valeure
- If Test2 <> 0 Then Test2 = Test2 + 9 Else cboStolen.RemoveItem i: Exit Sub
- Test = InStr(Test2, cboSettings, ">")
- N = Test
- Call Read
- i = i + 1
- Loop
- End Sub
-
- Private Sub Read()
- 'Name semble etre utilise par vb donc se sera Nam et on la vide
- Nam = ""
- 'On recommence jusqu'a l'ouverture d'une balise
- Do Until Char = "<"
- 'N est defini en fonction de Test
- N = N + 1
- 'On lit l'entree caractere par caractere
- Char = Mid(cboSettings, N, 1)
- If Char <> "<" And Char <> Chr(10) And Char <> Chr(13) And Char <> Chr(8) And Char <> Chr(9) Then Nam = Nam & Char
- Loop
- 'On ajoute l'entree a la comboBox
- If Nam <> "" Then cboStolen.AddItem Nam
- End Sub
Dim Url As String
Dim Analyze As String
Dim Test3, num, N As Integer
Dim c As Long
Dim Test, cboSettings, cboName, Nam As String
Private Sub cmdTest_Click()
'Num est le nombre de caracteres qui vont etre lus avec Mid$
num = 10000
'On met qqchose dans Nam pour la boucle de la sub Read()
Nam = "something"
'On recup l'URL
Url = txtURL.Text
'On recupere la source
Analyze = Inet1.OpenURL(Url)
'On rearrange le code en supprimant les retours a la ligne les triple et doubles _
espaces et sur en decolant les balises
Analyze = Replace(Analyze, Chr(10), "", 1, -1, 0)
Analyze = Replace(Analyze, Chr(13), "", 1, -1, 0)
Analyze = Replace(Analyze, Chr(11), "", 1, -1, 0)
Analyze = Replace(Analyze, Chr(12), "", 1, -1, 0)
Analyze = Replace(Analyze, Chr(9), "", 1, -1, 0)
Analyze = Replace(Analyze, Chr(8), "", 1, -1, 0)
Analyze = Replace(Analyze, "><", "> <", 1, -1, 0)
Analyze = Replace(Analyze, " ", " ", 1, -1, 0)
Analyze = Replace(Analyze, " ", " ", 1, -1, 0)
'On analyse la source
'On se "deplace dans la source jusqu'a trouver <select ( qui est le debut de la _
combobox HTML )
Test = InStr(1, Analyze, "<select")
'cboSettings contient les "num" caracteres apres select
cboSettings1 = Mid(Analyze, Test, num)
'Apres on se deplace dans cboSettings pour trouver le nom de la combobox _
et on ajoute 6 qui correspnd au nombres de caracteres contenus dans _
' name=" '
Test3 = InStr(1, cboSettings1, "name") + 6
'Ici on lit le nom de la cbobox
cboSettings = Mid(cboSettings1, Test3, num)
'La on cherche la derniere ' " ' qui indique la fin du nom de la cbobox
Test3 = InStr(1, cboSettings, Chr(34)) - 1
'Et ensuite on enregistre sont nom
cboName = Left(cboSettings, Test3)
'On l'affiche
lblCboName.Caption = cboName
'Ensuite on se deplace jusqu'a la premiere balise option qui indique la premiere _
entree de la cbobox
Test = InStr(Test3, cboSettings, "<option")
'On cherche ou la balise se ferme
Test = InStr(Test, cboSettings, ">")
'On enregistre Test dans N pour pouvoir travailler avec
N = Test
Call Read
i = 0
'Avec cette boucle on se deplace a chaque fois jusqu'a l'autre balise
'"i" sert d'une sorte d'index pour la comboBox
Do Until i = 100000
Test2 = InStr((N - 2), cboSettings, "</option")
'S'il n'y a plus de balise on enleve la derniere entree de la combobox _
qui est vide a cause de la boucle , et on sort de la sub .Sinon on sort _
de la balise "</option>" en ajoutant 9 et on va a l'autre "<option>" _
Et on appel Read() pour enregistrer la valeure
If Test2 <> 0 Then Test2 = Test2 + 9 Else cboStolen.RemoveItem i: Exit Sub
Test = InStr(Test2, cboSettings, ">")
N = Test
Call Read
i = i + 1
Loop
End Sub
Private Sub Read()
'Name semble etre utilise par vb donc se sera Nam et on la vide
Nam = ""
'On recommence jusqu'a l'ouverture d'une balise
Do Until Char = "<"
'N est defini en fonction de Test
N = N + 1
'On lit l'entree caractere par caractere
Char = Mid(cboSettings, N, 1)
If Char <> "<" And Char <> Chr(10) And Char <> Chr(13) And Char <> Chr(8) And Char <> Chr(9) Then Nam = Nam & Char
Loop
'On ajoute l'entree a la comboBox
If Nam <> "" Then cboStolen.AddItem Nam
End Sub
Conclusion
Bon desoles d'avoir raconte ma vie au dessus :p En plus concret , j'utilise Inet juste pour recupere la source de la page . Certaine page ne sont pas lisible , j'ai pas trouve pourquoi ( par exemple www.download.com ). Si vous voulait une page qui fonctionne bien et une utile c'est celle de UPS : http://www.ups.com , avec la liste de tres tres nombreux pays . Enfin , je fais mes etudes aux etats unis , donc desoles si quelques variables on des noms anglais , et surtout si je ne met pas d'accents ( claviers qwerty ) .
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|