OVH Cloud OVH Cloud

analyse de code html

9 réponses
Avatar
Elicend_News
bonjour
je voudrais savoir si en VB on peut faire quelque chose comme ca:
- ouverture d'une page html dont on connait l'url (reponse : je suis kasi
sur que oui mais a vrai dire ca ne m'est pas indispensable!)
- récuperer le code html de la page en question dans une variable ou un
fichier (je pense que oui, mais je ne sais pas comment?)
- analyser ce code et en extraire quelques lignes commencant par dSI( et
finissant par "); (se sont les seules à commencer par dSI de tt la page)
dans ces lignes j'ai soit des valeurs numériques soit des valeurs texte qui
sont entre " ", chaque variable est de toute facon séparée de la suivante
par une virgule
- récupérer certaine (toute?) de ces variables.

ceci représenterai la premiere partie de mon application.

Pouvez vous me dire si c'est possible, assez simple et m'aiguiller sur la
bonne voie pour commencer ce script ?

Merci d'avance
Elicend

--
Encore merci / Thanks a lot !

@ plus
Elicend
________________________

l'adresse mail est fausse
Me contacter ici
pour avoir la vrai

My Email is wrong,
contact me here to
have the real mail
________________________

9 réponses

Avatar
François Picalausa
Bonjour/soir,

En posant un contrôle WebBrowser sur une form, c'est très simple:

Private Sub Form_Load()
WebBrowser1.Navigate("http://bla bla bla")
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As
Variant)
'Quand le document est cahrgé, on récupère le texte voule
'Dans la balise voulue
Dim strContent As String

'Récupère le TEXTE du document
strContent = WebBrowser1.Document.Body.innerText

'Récupère l'HTML du document
strContent = WebBrowser1.Document.Body.innerHTML

'Récupère le TEXTE d'un élément de la page web
'nommé test (par exemple <div id="test">Texte</div>)
strContent = WebBrowser1.Docement.getElementById("test").innerText
End Sub

Tu peux aussi télécharger la page par Inet et gérer le tout toi même
ou encore, par l'API URLDownloadToFile

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Elicend_News" a écrit dans le message de
news:401537c4$0$19277$
bonjour
je voudrais savoir si en VB on peut faire quelque chose comme ca:
- ouverture d'une page html dont on connait l'url (reponse : je suis
kasi sur que oui mais a vrai dire ca ne m'est pas indispensable!)
- récuperer le code html de la page en question dans une variable ou
un fichier (je pense que oui, mais je ne sais pas comment?)
- analyser ce code et en extraire quelques lignes commencant par dSI(
et finissant par "); (se sont les seules à commencer par dSI de tt la
page) dans ces lignes j'ai soit des valeurs numériques soit des
valeurs texte qui sont entre " ", chaque variable est de toute facon
séparée de la suivante par une virgule
- récupérer certaine (toute?) de ces variables.

ceci représenterai la premiere partie de mon application.

Pouvez vous me dire si c'est possible, assez simple et m'aiguiller
sur la bonne voie pour commencer ce script ?

Merci d'avance
Elicend


Avatar
ng
Salut,

Si j'ai bien compris, essaye ceci (dans un module) :

Private Declare Function URLDownloadToFile Lib "urlmon" Alias
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal
szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As
Long
Private Function DownloadFile(URL As String, LocalFilename As String) As
Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function

Public Function AppPath()
'répertoire de l'appli
If Right$(App.Path, 1) = "" Then AppPath = App.Path Else AppPath = App.Path
& ""
End Function


Public Function OuvrURL(sPage As String) As String
Dim sTmpC As String, k As Integer, Buff As String
sTmpC = AppChe & Int(Timer) & ".dl"
DownloadFile sPage, sTmpC
k = FreeFile
Open sTmpC For Binary As #k
Buff = Space$(LOF(k))
Get #k, , Buff
Close #k
OuvrURL = Buff
Buff = ""
On Error Resume Next
Kill sTmpC
End Function

Public Sub ParsePage(sURL As String)
Dim sPage As String, tblLignes() As String, i As Integer
'récupère le code de la page
sPage = OuvrURL(sURL) & vbCrLf
'sépare les lignes dans un tableau
tblLignes = Split(sPage, vbCrLf, , vbTextCompare)
For i = 0 To UBound(tblLignes)
'pour chaque ligne on vérifie
If tblLignes(i) Like "dSI*""" Then
MsgBox "On a une ligne : " & tblLignes(i)
End If
Next
sPage = ""
Erase tblLignes
End Sub

Ensuite pour l'utiliser fais :

Call ParsePage("http://www.site.com/page.ext")

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Elicend_News wrote:
bonjour
je voudrais savoir si en VB on peut faire quelque chose comme ca:
- ouverture d'une page html dont on connait l'url (reponse : je suis
kasi sur que oui mais a vrai dire ca ne m'est pas indispensable!)
- récuperer le code html de la page en question dans une variable ou
un fichier (je pense que oui, mais je ne sais pas comment?)
- analyser ce code et en extraire quelques lignes commencant par dSI(
et finissant par "); (se sont les seules à commencer par dSI de tt la
page) dans ces lignes j'ai soit des valeurs numériques soit des
valeurs texte qui sont entre " ", chaque variable est de toute facon
séparée de la suivante par une virgule
- récupérer certaine (toute?) de ces variables.

ceci représenterai la premiere partie de mon application.

Pouvez vous me dire si c'est possible, assez simple et m'aiguiller
sur la bonne voie pour commencer ce script ?

Merci d'avance
Elicend


Avatar
Elicend_News
ok merci beaucoup !!

j'essaye ce soir ce bout de code qui me parait trés symatique :)

entre temps j'ai trouvé cette source,
http://www.vbfrance.com/code.aspx?ID`85

dans laquelle j'ai le pb de ne traiter qu'une ligne, avec le code que tu
m'as donné, j'ai bien l'impression de palier à ce pb!

merci

elicend

"ng" a écrit dans le message de
news:%
Salut,

Si j'ai bien compris, essaye ceci (dans un module) :

Private Declare Function URLDownloadToFile Lib "urlmon" Alias
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal
szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As
Long
Private Function DownloadFile(URL As String, LocalFilename As String) As
Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function

Public Function AppPath()
'répertoire de l'appli
If Right$(App.Path, 1) = "" Then AppPath = App.Path Else AppPath App.Path
& ""
End Function


Public Function OuvrURL(sPage As String) As String
Dim sTmpC As String, k As Integer, Buff As String
sTmpC = AppChe & Int(Timer) & ".dl"
DownloadFile sPage, sTmpC
k = FreeFile
Open sTmpC For Binary As #k
Buff = Space$(LOF(k))
Get #k, , Buff
Close #k
OuvrURL = Buff
Buff = ""
On Error Resume Next
Kill sTmpC
End Function

Public Sub ParsePage(sURL As String)
Dim sPage As String, tblLignes() As String, i As Integer
'récupère le code de la page
sPage = OuvrURL(sURL) & vbCrLf
'sépare les lignes dans un tableau
tblLignes = Split(sPage, vbCrLf, , vbTextCompare)
For i = 0 To UBound(tblLignes)
'pour chaque ligne on vérifie
If tblLignes(i) Like "dSI*""" Then
MsgBox "On a une ligne : " & tblLignes(i)
End If
Next
sPage = ""
Erase tblLignes
End Sub

Ensuite pour l'utiliser fais :

Call ParsePage("http://www.site.com/page.ext")

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Elicend_News wrote:
> bonjour
> je voudrais savoir si en VB on peut faire quelque chose comme ca:
> - ouverture d'une page html dont on connait l'url (reponse : je suis
> kasi sur que oui mais a vrai dire ca ne m'est pas indispensable!)
> - récuperer le code html de la page en question dans une variable ou
> un fichier (je pense que oui, mais je ne sais pas comment?)
> - analyser ce code et en extraire quelques lignes commencant par dSI(
> et finissant par "); (se sont les seules à commencer par dSI de tt la
> page) dans ces lignes j'ai soit des valeurs numériques soit des
> valeurs texte qui sont entre " ", chaque variable est de toute facon
> séparée de la suivante par une virgule
> - récupérer certaine (toute?) de ces variables.
>
> ceci représenterai la premiere partie de mon application.
>
> Pouvez vous me dire si c'est possible, assez simple et m'aiguiller
> sur la bonne voie pour commencer ce script ?
>
> Merci d'avance
> Elicend




Avatar
Elicend_News
salut

j'ai essayer le bout de code fourni, et bien ca fonctionne nikel!

je me suis basé sur la meme architecture pour analyser les lignes et séparer
toutes les variables contenu dans la ligne en faisant un split sur les
virgules, mais, j'obtiens mes valeurs numériques sans pb (elles sont toutes
au meme endroit donc je choppe la 13eme en fait par exemple ), par contre,
les valeurs texte sont entourées de guillemet! la suite de mon analuse
serait donc :
-comment transformer "variable_texte" en variable_text

je suis sur que c'est juste une ligne de commande equivalente au str_replace
en php mais je ne l'ai pas trouvée dans mon bouquin VB hier soir ???

en tout cas merci beaucoup pour le super coup de main ;)
elicend


"Elicend_News" a écrit dans le message de
news:401614ce$0$17125$
ok merci beaucoup !!

j'essaye ce soir ce bout de code qui me parait trés symatique :)

entre temps j'ai trouvé cette source,
http://www.vbfrance.com/code.aspx?ID`85

dans laquelle j'ai le pb de ne traiter qu'une ligne, avec le code que tu
m'as donné, j'ai bien l'impression de palier à ce pb!

merci

elicend

"ng" a écrit dans le message de
news:%
> Salut,
>
> Si j'ai bien compris, essaye ceci (dans un module) :
>
> Private Declare Function URLDownloadToFile Lib "urlmon" Alias
> "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String,


ByVal
> szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As
> Long
> Private Function DownloadFile(URL As String, LocalFilename As String) As
> Boolean
> Dim lngRetVal As Long
> lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
> If lngRetVal = 0 Then DownloadFile = True
> End Function
>
> Public Function AppPath()
> 'répertoire de l'appli
> If Right$(App.Path, 1) = "" Then AppPath = App.Path Else AppPath > App.Path
> & ""
> End Function
>
>
> Public Function OuvrURL(sPage As String) As String
> Dim sTmpC As String, k As Integer, Buff As String
> sTmpC = AppChe & Int(Timer) & ".dl"
> DownloadFile sPage, sTmpC
> k = FreeFile
> Open sTmpC For Binary As #k
> Buff = Space$(LOF(k))
> Get #k, , Buff
> Close #k
> OuvrURL = Buff
> Buff = ""
> On Error Resume Next
> Kill sTmpC
> End Function
>
> Public Sub ParsePage(sURL As String)
> Dim sPage As String, tblLignes() As String, i As Integer
> 'récupère le code de la page
> sPage = OuvrURL(sURL) & vbCrLf
> 'sépare les lignes dans un tableau
> tblLignes = Split(sPage, vbCrLf, , vbTextCompare)
> For i = 0 To UBound(tblLignes)
> 'pour chaque ligne on vérifie
> If tblLignes(i) Like "dSI*""" Then
> MsgBox "On a une ligne : " & tblLignes(i)
> End If
> Next
> sPage = ""
> Erase tblLignes
> End Sub
>
> Ensuite pour l'utiliser fais :
>
> Call ParsePage("http://www.site.com/page.ext")
>
> --
> Nicolas G.
> FAQ VB : http://faq.vb.free.fr
> API Guide : http://www.allapi.net
> Google Groups : http://groups.google.fr/
> MZ-Tools : http://www.mztools.com/
>
> Elicend_News wrote:
> > bonjour
> > je voudrais savoir si en VB on peut faire quelque chose comme ca:
> > - ouverture d'une page html dont on connait l'url (reponse : je suis
> > kasi sur que oui mais a vrai dire ca ne m'est pas indispensable!)
> > - récuperer le code html de la page en question dans une variable ou
> > un fichier (je pense que oui, mais je ne sais pas comment?)
> > - analyser ce code et en extraire quelques lignes commencant par dSI(
> > et finissant par "); (se sont les seules à commencer par dSI de tt la
> > page) dans ces lignes j'ai soit des valeurs numériques soit des
> > valeurs texte qui sont entre " ", chaque variable est de toute facon
> > séparée de la suivante par une virgule
> > - récupérer certaine (toute?) de ces variables.
> >
> > ceci représenterai la premiere partie de mon application.
> >
> > Pouvez vous me dire si c'est possible, assez simple et m'aiguiller
> > sur la bonne voie pour commencer ce script ?
> >
> > Merci d'avance
> > Elicend
>
>




Avatar
François Picalausa
Bonjour/soir,

Comme tous les traitements sur les chaines, tu peux retrouver celà
facilement par intellisence en regardant dans VBA.Strings.[liste
intellisence]
Il s'agit ici de Replace:

Dim Avant As String, Après As String

Avant = """Test"" pour replace avec des guillemets de partout"
'double guillemet = " dans le texte
'Exemple:
' "Te""st" donne à l'affichage Te"st
' """Test""" donne "Test"
'...

Après = Replace(Avant, """Test""", "Simple test")
'Après vaut ici:
'Simple test pour replace avec des guillemets de partout
'Avant peut être égal à Après lors de l'appel à Replace

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Elicend_News" a écrit dans le message de
news:40177559$0$24023$
les valeurs texte sont entourées de
guillemet! la suite de mon analuse serait donc :
-comment transformer "variable_texte" en variable_text

je suis sur que c'est juste une ligne de commande equivalente au
str_replace en php mais je ne l'ai pas trouvée dans mon bouquin VB
hier soir ???


Avatar
ng
Salut,

je suis sur que c'est juste une ligne de commande equivalente au
str_replace en php mais je ne l'ai pas trouvée dans mon bouquin VB
hier soir ???


Ereg_replace() tu veux dire :)

Tu peux essayer ceci :

If sChaine Like """*""" Then
sChaine = Replace(sChaine, """", "", , , vbTextCompare)
End If

Ou encore :

sChaine = Entre(sChaine, """", """")

Public Function Entre(sCh As String, sQuoi As String, sEtQuoi As String) As
String
Dim i As Long
i = InStr(1, sCh, sQuoi, vbTextCompare)
If i > 0 Then
Entre = Mid$(sCh, i + Len(sQuoi))
i = InStr(1, Entre, sEtQuoi, vbTextCompare)
If (i - 1) > 0 Then Entre = Left$(Entre, i - 1)
End If
End Function


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Elicend_News wrote:
salut

j'ai essayer le bout de code fourni, et bien ca fonctionne nikel!

je me suis basé sur la meme architecture pour analyser les lignes et
séparer toutes les variables contenu dans la ligne en faisant un
split sur les virgules, mais, j'obtiens mes valeurs numériques sans
pb (elles sont toutes au meme endroit donc je choppe la 13eme en fait
par exemple ), par contre, les valeurs texte sont entourées de
guillemet! la suite de mon analuse serait donc :
-comment transformer "variable_texte" en variable_text

je suis sur que c'est juste une ligne de commande equivalente au
str_replace en php mais je ne l'ai pas trouvée dans mon bouquin VB
hier soir ???

en tout cas merci beaucoup pour le super coup de main ;)
elicend


"Elicend_News" a écrit dans le message
de news:401614ce$0$17125$
ok merci beaucoup !!

j'essaye ce soir ce bout de code qui me parait trés symatique :)

entre temps j'ai trouvé cette source,
http://www.vbfrance.com/code.aspx?ID`85

dans laquelle j'ai le pb de ne traiter qu'une ligne, avec le code
que tu m'as donné, j'ai bien l'impression de palier à ce pb!

merci

elicend

"ng" a écrit dans le message de
news:%
Salut,

Si j'ai bien compris, essaye ceci (dans un module) :

Private Declare Function URLDownloadToFile Lib "urlmon" Alias
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String,
ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB
As Long) As Long
Private Function DownloadFile(URL As String, LocalFilename As
String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function

Public Function AppPath()
'répertoire de l'appli
If Right$(App.Path, 1) = "" Then AppPath = App.Path Else AppPath >>> App.Path & ""
End Function


Public Function OuvrURL(sPage As String) As String
Dim sTmpC As String, k As Integer, Buff As String
sTmpC = AppChe & Int(Timer) & ".dl"
DownloadFile sPage, sTmpC
k = FreeFile
Open sTmpC For Binary As #k
Buff = Space$(LOF(k))
Get #k, , Buff
Close #k
OuvrURL = Buff
Buff = ""
On Error Resume Next
Kill sTmpC
End Function

Public Sub ParsePage(sURL As String)
Dim sPage As String, tblLignes() As String, i As Integer
'récupère le code de la page
sPage = OuvrURL(sURL) & vbCrLf
'sépare les lignes dans un tableau
tblLignes = Split(sPage, vbCrLf, , vbTextCompare)
For i = 0 To UBound(tblLignes)
'pour chaque ligne on vérifie
If tblLignes(i) Like "dSI*""" Then
MsgBox "On a une ligne : " & tblLignes(i)
End If
Next
sPage = ""
Erase tblLignes
End Sub

Ensuite pour l'utiliser fais :

Call ParsePage("http://www.site.com/page.ext")

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Elicend_News wrote:
bonjour
je voudrais savoir si en VB on peut faire quelque chose comme ca:
- ouverture d'une page html dont on connait l'url (reponse : je
suis kasi sur que oui mais a vrai dire ca ne m'est pas
indispensable!) - récuperer le code html de la page en question
dans une variable ou un fichier (je pense que oui, mais je ne sais
pas comment?) - analyser ce code et en extraire quelques lignes
commencant par dSI( et finissant par "); (se sont les seules à
commencer par dSI de tt la page) dans ces lignes j'ai soit des
valeurs numériques soit des valeurs texte qui sont entre " ",
chaque variable est de toute facon séparée de la suivante par une
virgule - récupérer certaine (toute?) de ces variables.

ceci représenterai la premiere partie de mon application.

Pouvez vous me dire si c'est possible, assez simple et m'aiguiller
sur la bonne voie pour commencer ce script ?

Merci d'avance
Elicend








Avatar
Elicend_News
merci bien!

comme d'hab, j'essaye ce soir et je vous tiens au courant demain mais je
suis hyper content de voir mon appli avancer a grand pas :)

"ng" a écrit dans le message de
news:
Salut,

> je suis sur que c'est juste une ligne de commande equivalente au
> str_replace en php mais je ne l'ai pas trouvée dans mon bouquin VB
> hier soir ???
Ereg_replace() tu veux dire :)

Tu peux essayer ceci :

If sChaine Like """*""" Then
sChaine = Replace(sChaine, """", "", , , vbTextCompare)
End If

Ou encore :

sChaine = Entre(sChaine, """", """")

Public Function Entre(sCh As String, sQuoi As String, sEtQuoi As String)


As
String
Dim i As Long
i = InStr(1, sCh, sQuoi, vbTextCompare)
If i > 0 Then
Entre = Mid$(sCh, i + Len(sQuoi))
i = InStr(1, Entre, sEtQuoi, vbTextCompare)
If (i - 1) > 0 Then Entre = Left$(Entre, i - 1)
End If
End Function


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Elicend_News wrote:
> salut
>
> j'ai essayer le bout de code fourni, et bien ca fonctionne nikel!
>
> je me suis basé sur la meme architecture pour analyser les lignes et
> séparer toutes les variables contenu dans la ligne en faisant un
> split sur les virgules, mais, j'obtiens mes valeurs numériques sans
> pb (elles sont toutes au meme endroit donc je choppe la 13eme en fait
> par exemple ), par contre, les valeurs texte sont entourées de
> guillemet! la suite de mon analuse serait donc :
> -comment transformer "variable_texte" en variable_text
>
> je suis sur que c'est juste une ligne de commande equivalente au
> str_replace en php mais je ne l'ai pas trouvée dans mon bouquin VB
> hier soir ???
>
> en tout cas merci beaucoup pour le super coup de main ;)
> elicend
>
>
> "Elicend_News" a écrit dans le message
> de news:401614ce$0$17125$
>> ok merci beaucoup !!
>>
>> j'essaye ce soir ce bout de code qui me parait trés symatique :)
>>
>> entre temps j'ai trouvé cette source,
>> http://www.vbfrance.com/code.aspx?ID`85
>>
>> dans laquelle j'ai le pb de ne traiter qu'une ligne, avec le code
>> que tu m'as donné, j'ai bien l'impression de palier à ce pb!
>>
>> merci
>>
>> elicend
>>
>> "ng" a écrit dans le message de
>> news:%
>>> Salut,
>>>
>>> Si j'ai bien compris, essaye ceci (dans un module) :
>>>
>>> Private Declare Function URLDownloadToFile Lib "urlmon" Alias
>>> "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String,
>>> ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB
>>> As Long) As Long
>>> Private Function DownloadFile(URL As String, LocalFilename As
>>> String) As Boolean
>>> Dim lngRetVal As Long
>>> lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
>>> If lngRetVal = 0 Then DownloadFile = True
>>> End Function
>>>
>>> Public Function AppPath()
>>> 'répertoire de l'appli
>>> If Right$(App.Path, 1) = "" Then AppPath = App.Path Else AppPath > >>> App.Path & ""
>>> End Function
>>>
>>>
>>> Public Function OuvrURL(sPage As String) As String
>>> Dim sTmpC As String, k As Integer, Buff As String
>>> sTmpC = AppChe & Int(Timer) & ".dl"
>>> DownloadFile sPage, sTmpC
>>> k = FreeFile
>>> Open sTmpC For Binary As #k
>>> Buff = Space$(LOF(k))
>>> Get #k, , Buff
>>> Close #k
>>> OuvrURL = Buff
>>> Buff = ""
>>> On Error Resume Next
>>> Kill sTmpC
>>> End Function
>>>
>>> Public Sub ParsePage(sURL As String)
>>> Dim sPage As String, tblLignes() As String, i As Integer
>>> 'récupère le code de la page
>>> sPage = OuvrURL(sURL) & vbCrLf
>>> 'sépare les lignes dans un tableau
>>> tblLignes = Split(sPage, vbCrLf, , vbTextCompare)
>>> For i = 0 To UBound(tblLignes)
>>> 'pour chaque ligne on vérifie
>>> If tblLignes(i) Like "dSI*""" Then
>>> MsgBox "On a une ligne : " & tblLignes(i)
>>> End If
>>> Next
>>> sPage = ""
>>> Erase tblLignes
>>> End Sub
>>>
>>> Ensuite pour l'utiliser fais :
>>>
>>> Call ParsePage("http://www.site.com/page.ext")
>>>
>>> --
>>> Nicolas G.
>>> FAQ VB : http://faq.vb.free.fr
>>> API Guide : http://www.allapi.net
>>> Google Groups : http://groups.google.fr/
>>> MZ-Tools : http://www.mztools.com/
>>>
>>> Elicend_News wrote:
>>>> bonjour
>>>> je voudrais savoir si en VB on peut faire quelque chose comme ca:
>>>> - ouverture d'une page html dont on connait l'url (reponse : je
>>>> suis kasi sur que oui mais a vrai dire ca ne m'est pas
>>>> indispensable!) - récuperer le code html de la page en question
>>>> dans une variable ou un fichier (je pense que oui, mais je ne sais
>>>> pas comment?) - analyser ce code et en extraire quelques lignes
>>>> commencant par dSI( et finissant par "); (se sont les seules à
>>>> commencer par dSI de tt la page) dans ces lignes j'ai soit des
>>>> valeurs numériques soit des valeurs texte qui sont entre " ",
>>>> chaque variable est de toute facon séparée de la suivante par une
>>>> virgule - récupérer certaine (toute?) de ces variables.
>>>>
>>>> ceci représenterai la premiere partie de mon application.
>>>>
>>>> Pouvez vous me dire si c'est possible, assez simple et m'aiguiller
>>>> sur la bonne voie pour commencer ce script ?
>>>>
>>>> Merci d'avance
>>>> Elicend




Avatar
Elicend_News
j'ai utilisé ca

If sChaine Like """*""" Then
sChaine = Replace(sChaine, """", "", , , vbTextCompare)
End If

et ca marche nickel chrome!

merci beaucoup!

elicend



"Elicend_News" a écrit dans le message de
news:4017b6b8$0$24047$
merci bien!

comme d'hab, j'essaye ce soir et je vous tiens au courant demain mais je
suis hyper content de voir mon appli avancer a grand pas :)

"ng" a écrit dans le message de
news:
> Salut,
>
> > je suis sur que c'est juste une ligne de commande equivalente au
> > str_replace en php mais je ne l'ai pas trouvée dans mon bouquin VB
> > hier soir ???
> Ereg_replace() tu veux dire :)
>
> Tu peux essayer ceci :
>
> If sChaine Like """*""" Then
> sChaine = Replace(sChaine, """", "", , , vbTextCompare)
> End If
>
> Ou encore :
>
> sChaine = Entre(sChaine, """", """")
>
> Public Function Entre(sCh As String, sQuoi As String, sEtQuoi As String)
As
> String
> Dim i As Long
> i = InStr(1, sCh, sQuoi, vbTextCompare)
> If i > 0 Then
> Entre = Mid$(sCh, i + Len(sQuoi))
> i = InStr(1, Entre, sEtQuoi, vbTextCompare)
> If (i - 1) > 0 Then Entre = Left$(Entre, i - 1)
> End If
> End Function
>
>
> --
> Nicolas G.
> FAQ VB : http://faq.vb.free.fr
> API Guide : http://www.allapi.net
> Google Groups : http://groups.google.fr/
> MZ-Tools : http://www.mztools.com/
>
> Elicend_News wrote:
> > salut
> >
> > j'ai essayer le bout de code fourni, et bien ca fonctionne nikel!
> >
> > je me suis basé sur la meme architecture pour analyser les lignes et
> > séparer toutes les variables contenu dans la ligne en faisant un
> > split sur les virgules, mais, j'obtiens mes valeurs numériques sans
> > pb (elles sont toutes au meme endroit donc je choppe la 13eme en fait
> > par exemple ), par contre, les valeurs texte sont entourées de
> > guillemet! la suite de mon analuse serait donc :
> > -comment transformer "variable_texte" en variable_text
> >
> > je suis sur que c'est juste une ligne de commande equivalente au
> > str_replace en php mais je ne l'ai pas trouvée dans mon bouquin VB
> > hier soir ???
> >
> > en tout cas merci beaucoup pour le super coup de main ;)
> > elicend
> >
> >
> > "Elicend_News" a écrit dans le message
> > de news:401614ce$0$17125$
> >> ok merci beaucoup !!
> >>
> >> j'essaye ce soir ce bout de code qui me parait trés symatique :)
> >>
> >> entre temps j'ai trouvé cette source,
> >> http://www.vbfrance.com/code.aspx?ID`85
> >>
> >> dans laquelle j'ai le pb de ne traiter qu'une ligne, avec le code
> >> que tu m'as donné, j'ai bien l'impression de palier à ce pb!
> >>
> >> merci
> >>
> >> elicend
> >>
> >> "ng" a écrit dans le message de
> >> news:%
> >>> Salut,
> >>>
> >>> Si j'ai bien compris, essaye ceci (dans un module) :
> >>>
> >>> Private Declare Function URLDownloadToFile Lib "urlmon" Alias
> >>> "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String,
> >>> ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB
> >>> As Long) As Long
> >>> Private Function DownloadFile(URL As String, LocalFilename As
> >>> String) As Boolean
> >>> Dim lngRetVal As Long
> >>> lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
> >>> If lngRetVal = 0 Then DownloadFile = True
> >>> End Function
> >>>
> >>> Public Function AppPath()
> >>> 'répertoire de l'appli
> >>> If Right$(App.Path, 1) = "" Then AppPath = App.Path Else AppPath > > >>> App.Path & ""
> >>> End Function
> >>>
> >>>
> >>> Public Function OuvrURL(sPage As String) As String
> >>> Dim sTmpC As String, k As Integer, Buff As String
> >>> sTmpC = AppChe & Int(Timer) & ".dl"
> >>> DownloadFile sPage, sTmpC
> >>> k = FreeFile
> >>> Open sTmpC For Binary As #k
> >>> Buff = Space$(LOF(k))
> >>> Get #k, , Buff
> >>> Close #k
> >>> OuvrURL = Buff
> >>> Buff = ""
> >>> On Error Resume Next
> >>> Kill sTmpC
> >>> End Function
> >>>
> >>> Public Sub ParsePage(sURL As String)
> >>> Dim sPage As String, tblLignes() As String, i As Integer
> >>> 'récupère le code de la page
> >>> sPage = OuvrURL(sURL) & vbCrLf
> >>> 'sépare les lignes dans un tableau
> >>> tblLignes = Split(sPage, vbCrLf, , vbTextCompare)
> >>> For i = 0 To UBound(tblLignes)
> >>> 'pour chaque ligne on vérifie
> >>> If tblLignes(i) Like "dSI*""" Then
> >>> MsgBox "On a une ligne : " & tblLignes(i)
> >>> End If
> >>> Next
> >>> sPage = ""
> >>> Erase tblLignes
> >>> End Sub
> >>>
> >>> Ensuite pour l'utiliser fais :
> >>>
> >>> Call ParsePage("http://www.site.com/page.ext")
> >>>
> >>> --
> >>> Nicolas G.
> >>> FAQ VB : http://faq.vb.free.fr
> >>> API Guide : http://www.allapi.net
> >>> Google Groups : http://groups.google.fr/
> >>> MZ-Tools : http://www.mztools.com/
> >>>
> >>> Elicend_News wrote:
> >>>> bonjour
> >>>> je voudrais savoir si en VB on peut faire quelque chose comme ca:
> >>>> - ouverture d'une page html dont on connait l'url (reponse : je
> >>>> suis kasi sur que oui mais a vrai dire ca ne m'est pas
> >>>> indispensable!) - récuperer le code html de la page en question
> >>>> dans une variable ou un fichier (je pense que oui, mais je ne sais
> >>>> pas comment?) - analyser ce code et en extraire quelques lignes
> >>>> commencant par dSI( et finissant par "); (se sont les seules à
> >>>> commencer par dSI de tt la page) dans ces lignes j'ai soit des
> >>>> valeurs numériques soit des valeurs texte qui sont entre " ",
> >>>> chaque variable est de toute facon séparée de la suivante par une
> >>>> virgule - récupérer certaine (toute?) de ces variables.
> >>>>
> >>>> ceci représenterai la premiere partie de mon application.
> >>>>
> >>>> Pouvez vous me dire si c'est possible, assez simple et m'aiguiller
> >>>> sur la bonne voie pour commencer ce script ?
> >>>>
> >>>> Merci d'avance
> >>>> Elicend
>
>




Avatar
ng
Mais y a pas de quoi ;-)

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
"Elicend_News" a écrit dans le message de
news: 4018e0f8$0$28712$
j'ai utilisé ca

If sChaine Like """*""" Then
sChaine = Replace(sChaine, """", "", , , vbTextCompare)
End If

et ca marche nickel chrome!

merci beaucoup!

elicend



"Elicend_News" a écrit dans le message de
news:4017b6b8$0$24047$
> merci bien!
>
> comme d'hab, j'essaye ce soir et je vous tiens au courant demain mais je
> suis hyper content de voir mon appli avancer a grand pas :)
>
> "ng" a écrit dans le message de
> news:
> > Salut,
> >
> > > je suis sur que c'est juste une ligne de commande equivalente au
> > > str_replace en php mais je ne l'ai pas trouvée dans mon bouquin VB
> > > hier soir ???
> > Ereg_replace() tu veux dire :)
> >
> > Tu peux essayer ceci :
> >
> > If sChaine Like """*""" Then
> > sChaine = Replace(sChaine, """", "", , , vbTextCompare)
> > End If
> >
> > Ou encore :
> >
> > sChaine = Entre(sChaine, """", """")
> >
> > Public Function Entre(sCh As String, sQuoi As String, sEtQuoi As


String)
> As
> > String
> > Dim i As Long
> > i = InStr(1, sCh, sQuoi, vbTextCompare)
> > If i > 0 Then
> > Entre = Mid$(sCh, i + Len(sQuoi))
> > i = InStr(1, Entre, sEtQuoi, vbTextCompare)
> > If (i - 1) > 0 Then Entre = Left$(Entre, i - 1)
> > End If
> > End Function
> >
> >
> > --
> > Nicolas G.
> > FAQ VB : http://faq.vb.free.fr
> > API Guide : http://www.allapi.net
> > Google Groups : http://groups.google.fr/
> > MZ-Tools : http://www.mztools.com/
> >
> > Elicend_News wrote:
> > > salut
> > >
> > > j'ai essayer le bout de code fourni, et bien ca fonctionne nikel!
> > >
> > > je me suis basé sur la meme architecture pour analyser les lignes et
> > > séparer toutes les variables contenu dans la ligne en faisant un
> > > split sur les virgules, mais, j'obtiens mes valeurs numériques sans
> > > pb (elles sont toutes au meme endroit donc je choppe la 13eme en


fait
> > > par exemple ), par contre, les valeurs texte sont entourées de
> > > guillemet! la suite de mon analuse serait donc :
> > > -comment transformer "variable_texte" en variable_text
> > >
> > > je suis sur que c'est juste une ligne de commande equivalente au
> > > str_replace en php mais je ne l'ai pas trouvée dans mon bouquin VB
> > > hier soir ???
> > >
> > > en tout cas merci beaucoup pour le super coup de main ;)
> > > elicend
> > >
> > >
> > > "Elicend_News" a écrit dans le message
> > > de news:401614ce$0$17125$
> > >> ok merci beaucoup !!
> > >>
> > >> j'essaye ce soir ce bout de code qui me parait trés symatique :)
> > >>
> > >> entre temps j'ai trouvé cette source,
> > >> http://www.vbfrance.com/code.aspx?ID`85
> > >>
> > >> dans laquelle j'ai le pb de ne traiter qu'une ligne, avec le code
> > >> que tu m'as donné, j'ai bien l'impression de palier à ce pb!
> > >>
> > >> merci
> > >>
> > >> elicend
> > >>
> > >> "ng" a écrit dans le message de
> > >> news:%
> > >>> Salut,
> > >>>
> > >>> Si j'ai bien compris, essaye ceci (dans un module) :
> > >>>
> > >>> Private Declare Function URLDownloadToFile Lib "urlmon" Alias
> > >>> "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As


String,
> > >>> ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB
> > >>> As Long) As Long
> > >>> Private Function DownloadFile(URL As String, LocalFilename As
> > >>> String) As Boolean
> > >>> Dim lngRetVal As Long
> > >>> lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
> > >>> If lngRetVal = 0 Then DownloadFile = True
> > >>> End Function
> > >>>
> > >>> Public Function AppPath()
> > >>> 'répertoire de l'appli
> > >>> If Right$(App.Path, 1) = "" Then AppPath = App.Path Else AppPath


> > > >>> App.Path & ""
> > >>> End Function
> > >>>
> > >>>
> > >>> Public Function OuvrURL(sPage As String) As String
> > >>> Dim sTmpC As String, k As Integer, Buff As String
> > >>> sTmpC = AppChe & Int(Timer) & ".dl"
> > >>> DownloadFile sPage, sTmpC
> > >>> k = FreeFile
> > >>> Open sTmpC For Binary As #k
> > >>> Buff = Space$(LOF(k))
> > >>> Get #k, , Buff
> > >>> Close #k
> > >>> OuvrURL = Buff
> > >>> Buff = ""
> > >>> On Error Resume Next
> > >>> Kill sTmpC
> > >>> End Function
> > >>>
> > >>> Public Sub ParsePage(sURL As String)
> > >>> Dim sPage As String, tblLignes() As String, i As Integer
> > >>> 'récupère le code de la page
> > >>> sPage = OuvrURL(sURL) & vbCrLf
> > >>> 'sépare les lignes dans un tableau
> > >>> tblLignes = Split(sPage, vbCrLf, , vbTextCompare)
> > >>> For i = 0 To UBound(tblLignes)
> > >>> 'pour chaque ligne on vérifie
> > >>> If tblLignes(i) Like "dSI*""" Then
> > >>> MsgBox "On a une ligne : " & tblLignes(i)
> > >>> End If
> > >>> Next
> > >>> sPage = ""
> > >>> Erase tblLignes
> > >>> End Sub
> > >>>
> > >>> Ensuite pour l'utiliser fais :
> > >>>
> > >>> Call ParsePage("http://www.site.com/page.ext")
> > >>>
> > >>> --
> > >>> Nicolas G.
> > >>> FAQ VB : http://faq.vb.free.fr
> > >>> API Guide : http://www.allapi.net
> > >>> Google Groups : http://groups.google.fr/
> > >>> MZ-Tools : http://www.mztools.com/
> > >>>
> > >>> Elicend_News wrote:
> > >>>> bonjour
> > >>>> je voudrais savoir si en VB on peut faire quelque chose comme ca:
> > >>>> - ouverture d'une page html dont on connait l'url (reponse : je
> > >>>> suis kasi sur que oui mais a vrai dire ca ne m'est pas
> > >>>> indispensable!) - récuperer le code html de la page en question
> > >>>> dans une variable ou un fichier (je pense que oui, mais je ne


sais
> > >>>> pas comment?) - analyser ce code et en extraire quelques lignes
> > >>>> commencant par dSI( et finissant par "); (se sont les seules à
> > >>>> commencer par dSI de tt la page) dans ces lignes j'ai soit des
> > >>>> valeurs numériques soit des valeurs texte qui sont entre " ",
> > >>>> chaque variable est de toute facon séparée de la suivante par une
> > >>>> virgule - récupérer certaine (toute?) de ces variables.
> > >>>>
> > >>>> ceci représenterai la premiere partie de mon application.
> > >>>>
> > >>>> Pouvez vous me dire si c'est possible, assez simple et


m'aiguiller
> > >>>> sur la bonne voie pour commencer ce script ?
> > >>>>
> > >>>> Merci d'avance
> > >>>> Elicend
> >
> >
>
>