lolpop
Messages postés211Date d'inscriptionmercredi 4 août 2004StatutMembreDernière intervention18 octobre 2010
-
27 févr. 2007 à 18:04
lolpop
Messages postés211Date d'inscriptionmercredi 4 août 2004StatutMembreDernière intervention18 octobre 2010
-
2 mars 2007 à 14:03
Bonjour,
j'ai un fichier texte contenant plusieurs ligne de texte avec a l'intèrieur des url ecrite http://www.domaine.com....... et j'aimerai extraire ces url pour les mettre par exemple dans un fichier text a part.
Mais je ne sais pas comment faire pour trouver ces url?
Quelqu'un pourrai m'aider?
Merci
If existe > 0 Then
ligneapres = Mid(ligneapres, existe)
existe1 = InStr(ligneapres, " ")
existe2 = InStr(ligneapres, "'")
existe3 = InStr(ligneapres, """")
existe4 = InStr(2, ligneapres, "http://")
If existe1 0 Then existe1 Len(ligneapres) If existe2 0 Then existe2 Len(ligneapres) If existe3 0 Then existe3 Len(ligneapres) If existe4 0 Then existe4 Len(ligneapres)
If existe1 <= existe2 And existe1 <= existe3 And existe1 <= existe4 Then existe = existe1
If existe2 <= existe3 And existe2 <= existe1 And existe2 <= existe4 Then existe = existe2
If existe3 <= existe1 And existe3 <= existe2 And existe3 <= existe4 Then existe = existe3
If existe4 <= existe1 And existe4 <= existe2 And existe4 <= existe3 Then existe = existe4
If existe <> Len(ligneapres) Then
ligneavant = Left(ligneapres, existe - 1)
ligneapres = Mid(ligneapres, existe)
Else
ligneavant = Left(ligneapres, existe)
ligneapres = Mid(ligneapres, existe + 1)
End If
If List1.ListCount - 1 <= 0 Then
List1.AddItem (ligneavant)
MsgBox ligneavant
Else
For i = 0 To List1.ListCount - 1
If List1.List(i) <> ligneavant Then
ok = ok + 0
Else
ok = ok + 1
End If
Next i
If ok = 0 Then List1.AddItem (ligneavant): MsgBox ligneavant
End If
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 2 mars 2007 à 13:20
l'idée de lolpop d'utiliser des expressions rationelle est pas mal....
la RegExp proposée est un peu longue et complexe, mais l'idée est séduisante.
dans le code ci-dessous, je vous propose d'extraire tout ce qui est de la forme http (ou https) :// et tout ce qui suit, jusqu'au prochain espace, guillement quote ou balise <.
Dim sBuffer As String
Dim oRegExp As Object
Dim oMatch As Object
Open App.Path & "\ok.txt" For Input As #1
sBuffer = Input(LOF(1), #1)
Close #1
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 27 févr. 2007 à 18:15
Bonsoir,
Ouverture de ton fichier texte et lecture de ces ligne, une par une (çà, tu sais faire ! une foultitude d'exemples et de sources sur ce forum...)
A chaque fois qu'une ligne contient http://www (ce que tu détermine par instr(laligne, http://www) >0
1) tu prends tout de qu'il y a à compter de cette position (utilisation de Mid(laligne, laposition)
2) tu regardes dans cette nouvelle chaîne s'il y a ou non un espace (utilisation de instr à nouveau) et :
a) s'il n'y a pas d'espace, tu prends toute la sous-chaîne
b) s'il y a un espace, tu ne gardes (en utilisant mid comme exposé plus haut) que ce qui va jusqu'à la position de cet espace -1
et ainsi de suite, ligne par ligne, jusqu'à la dernière ligne de ton fichier texte.
Essaye sur ces bases et reviens au besoin avec ton essai en nous exposant où tu rencontres une difficulté.
lolpop
Messages postés211Date d'inscriptionmercredi 4 août 2004StatutMembreDernière intervention18 octobre 2010 2 mars 2007 à 01:56
Et si j'utilisé les regex?
Je viens de faire les regex pour les url:
Dim regEx As RegExp
Set regEx = New RegExp
regEx.Pattern = "^http(s)?://([a-z0-9-]+.)?([a-z0-9-]+.)?[a-z0-9-]+\.[a-z]{2,4}(:[0-9]+)?(/[_a-z0-9-]*/?|/[_a-z0-9-]+\.[a-z0-9]{1,15}(\?[\._=a-z0-9-]+)?/?)*?$"
Mais ensuite je ne sais pas torp quoi faire pour trouver le texte et le selectionner.<!-- END TEMPLATE: bbcode_code -->