Tanaka56
Messages postés124Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention29 janvier 2009
-
7 mai 2006 à 17:19
Tanaka56
Messages postés124Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention29 janvier 2009
-
8 mai 2006 à 17:39
Bonjour à tous.
En visual Basic6, comment extraire un mot ou une date dans une ligne d'après un fichier HTML.
J'ai téléchargé la page HTML, je la renomme en TXT.
Ensuite, je lis les lignes :
Line Input #numfich, tmp ' On lit la ligne et on la stocke dans la variable
Exemple d'une ligne :
Colis Numéro 8N00629048780 à destination de 74130 </td>
Comme vous pouvez le voir, il y a au début de la ligne des espaces ou même des caractères parasites.
Je voudrais donc pouvoir extraire le numéro "8N00629048780" ainsi que le code postal "74130".
Merci beaucoup pour vos lumières.
Cordialement
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 8 mai 2006 à 11:56
Re,
Option Explicit
Call Form_Load()
Private Sub Form_Load()
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' Occurence recherchée
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Const Separateur = ">"
Const Separateur2 = "."
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' Recherche de chaine de caractères à partir d'une occurence
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Dim iPos, iPos1, sChaine, NewChaine
Const Path = "d:\test"
iPos = ""
iPos1 = ""
sChaine = "<td class=""fondpale"" style=""border-bottom:1px solid"">Colis en instance à La Poste, destinataire avisé disposant de 15 jours pour aller le retirer. </td>"
'MsgBox sChaine
iPos = InStr(1, sChaine, Separateur)
If iPos = 0 Then
Else
NewChaine = Right(sChaine, Len(sChaine) - iPos)
iPos1 = InStr(1, NewChaine, Separateur2)
If iPos1 = 0 Then
Else
MsgBox Left(NewChaine, iPos1 - 1) & "."
' MsgBox "Nom de fichier comprenant le caractère """ & Separateur & """" &vbCrLf&vbCrLf& sChaine &vbCrLf&vbCrLf&vbCrLf&_
' "Résultat pour le 1er """ & Separateur & """" &vbCrLf&vbCrLf&"A gauche : " & Left(sChaine, iPos - 1) &vbCrLf&_
' "A droite : " & Right(sChaine, Len(sChaine) - iPos) &vbCrLf&vbCrLf&_
' "Résultat pour le 2ème """ & Separateur2 & """" &vbCrLf&vbCrLf&"A gauche : " & Left(sChaine, iPos - 1) &vbCrLf&_
' "Au centre : " & Left(NewChaine, iPos1 - 1) & "." &vbCrLf&_
' "A droite : " & Right(NewChaine, Len(NewChaine) - iPos1),_
' vbInformation,"Recherche de l''expression contenue à gauche, au centre et à droite du caractère """ & Separateur & """ "
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
End If
End If
End Sub
Tanaka56
Messages postés124Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention29 janvier 2009 7 mai 2006 à 21:18
Merci pour ces infos, je ne connaisssais pas les syntaxes.
J'ai juste modifié, car un copier-coller ne fonctionnait pas, sans doute (right$) au lieu de (right) et (&vbCrLf&) il n'aime pas non plus.
numero = Right$(MyArray1(i), 13)
codepostal = Right$(MyArray2(i), 5)
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 7 mai 2006 à 21:39
Bonsoir,
Mes réponses(bonnes ou erronées) sont toujours en vbs,
mais facilement adaptables aux autres VBx (hormis .Net).
Attention, dans ta demande, on sous-entend que
"8N00629048780" soit toujours de même longueur(13).
jean-marc
Vous n’avez pas trouvé la réponse que vous recherchez ?
Tanaka56
Messages postés124Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention29 janvier 2009 8 mai 2006 à 10:12
Bonjour.
Effectivement, la longueur du numéro est égale à 13 caractères.
Par contre, j'ai bien noté qu'il faut également doubler les " en mettant "".
Dans mon cas j'avais : class="txtnav3on"
Il faut mettre : class=""txtnav3on""
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 8 mai 2006 à 10:31
Bonjour,
Oui, je ne l'avais pas précisé, tellement c'est une habitude pour moi.
MyString = "Colis Numéro 8N00629048780 à destination de 74130 </td>"
idem s'il y a une ', celle-ci devra être protégée (doublée).
Tanaka56
Messages postés124Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention29 janvier 2009 8 mai 2006 à 11:33
Re-bonjour,
Je suis toujours sur mon projet de colissimo suivi.
Et là je rencontre une difficulté puisque dans la recherche dans une ligne, je ne connais pas la longueur de la phrase car elle peut être différente.
Si tu as quelques minutes à me consacrer! Voilà les lignes possibles à rencontrer :
<td class="fondpale" style="border-bottom:1px solid">Colis en instance à La Poste, destinataire avisé disposant de 15 jours pour aller le retirer. </td>
ou
<td class="fondpale" style="border-bottom:1px solid">Destinataire absent lors de la première livraison, seconde présentation prévue. </td>
ou même
<td class="fondpale" style="border-bottom:1px solid">Colis livré. </td>
Tu remarqueras qu'il y a toujours devant : <td class="fondpale" style="border-bottom:1px solid">
et derrière : . </td>
Alors ma question est : Y-a-t'il un moyen d'extraire la ligne en question?
(il y a certainement d'autres lignes qu'ils peuvent mettre et que je ne connais pas)
Pour moi, c'est un vrai casse-tête !
J'ai pensé à une solution, c'est de faire une recherche avec might$ par caractère en commencant par le "." qui se trouve à la fin de chaque ligne et en reculant d'un caractère à la fois jusqu'à trouver le caractère ">", mais il doit peut-être avoir plus simple!
Merci de m'apporter une réponse, si tu en a une.
Cordialement.
Alain
Tanaka56
Messages postés124Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention29 janvier 2009 8 mai 2006 à 17:39
Bonsoir,
J'ai passé une bonne partie de l'après midi à faire en sorte que mon petit programme fonctionne.
J'ai pris ta deuxième solution en ce qui concerne la Recherche de chaine de caractères à partir d'une occurence, pour la ville et le code postal, car il y avait un décalage sur le site de la poste.
Maintenant cela fonctionne.
En ce qui concerne les petites boîtes de dialogues, je mets directement un label.
Merci encore pour ton aide, elle m'a été utile.
J'ai encore plein de choses à faire sur ce programme.