Extraire une chaine de caractères d'une ligne [Résolu]

Messages postés
21
Date d'inscription
lundi 3 avril 2006
Dernière intervention
13 novembre 2006
- - Dernière réponse : dthuler
Messages postés
123
Date d'inscription
dimanche 9 mars 2003
Dernière intervention
29 avril 2009
- 19 oct. 2006 à 14:53
Bonjour,

Je lis chaque ligne d'un fichier.
Pour chacune de ses lignes j'aimerai extraire url si elle existe ( et seulement elle!)
voici un exemple de ligne
"<td valign="middle" align="center">[http://www.toto.fr/FRANCE">TOTO</td>"

Quelqu'un peut m'aider??

Merci
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
123
Date d'inscription
dimanche 9 mars 2003
Dernière intervention
29 avril 2009
3
Merci
Salut!
Voici une proposition;

Private Function GetHTTPAdresse(Ligne As String) As String
    intDebPosition = InStr(1, Ligne, "http://")
    If intDebPosition > 0 Then
        intFinPosition = InStr(intDebPosition, Ligne, Chr(34))
        GetHTTPAdresse = Mid(Ligne, intDebPosition, intFinPosition - intDebPosition)
    Else
        GetHTTPAdresse = ""
    End If
End Function

Bon code!

David

Merci dthuler 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de dthuler
Messages postés
21
Date d'inscription
lundi 3 avril 2006
Dernière intervention
13 novembre 2006
3
Merci
Merci beaucoup

Merci cmiss16 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cmiss16
Messages postés
21
Date d'inscription
lundi 3 avril 2006
Dernière intervention
13 novembre 2006
0
Merci
Bonjour
De nouveau moi...
Je lis toujours un fichier et pour chaque ligne de ce fichier j'arrive à extraire URL (merci David )

Mais voilà... maintenant dans ma ligne ils existent plusieurs URL...

<td >



["essai>
["essai2>
["essai3>
</td>
Comment toutes les extrairent??

Merci.
Commenter la réponse de cmiss16
Messages postés
123
Date d'inscription
dimanche 9 mars 2003
Dernière intervention
29 avril 2009
0
Merci
Ton exemple comprends plusieurs lignes...

Cependant il est vrai que la fonction que je t'ai donnée comprends une grosse lacune; il est possible en HTML de mettre plusieurs "Tags" sur une même ligne... la solution complète est dans le même goût. Pour garder la fonction existante, je te propose de la compléter comme suit;

La première fonction dans un module ainsi que la suite:

Public Type monHTTP
Adresses() As String
End Type

Public Function LireToutesLesAdresses(Ligne as String) As monHTTP
Dim DebutTag As Integer, FinTag As Integer, intIndex As Integer
FinTag = 0
intIndex = 0
Do
DebutTag = InStr(FinTag, Ligne, "[)
FinTag = InStr(DebutTag, Ligne, ")
ReDim LireToutesLesAdresses(intIndex)
LireToutesLesAdresses.Adresses(intIndex) = GetHTTPAdresse (Mid(Ligne, DebutTag, Len(Ligne) - DebutTag + 1))
intIndex = intIndex + 1
Loop While DebutTag > 0
End Function

Tu appelles la fonction depuis ton prog par;
Dim MesAdresses As monHTTP
MesAdresses = LireToutesLesAdresses(LigneHTML)

Bon, ok c'est fait à la husse, je l'ai pas testé (pour une fois) mais ça devrait fonctionner.

La fonction LireToutesLesAdresses parcours la ligne et extrait les ] et GetHTTPAdresse lui renvoie l'adresses HTTP... question à 2 francs: Qu'est-ce qu'il se passe si du CSS ou du script vb ou js par exemple se trouve dans le <A HREF ??? A toi de modifier le code en conséquence si besoin

David
Commenter la réponse de dthuler
Messages postés
21
Date d'inscription
lundi 3 avril 2006
Dernière intervention
13 novembre 2006
0
Merci
J'ai fait quelques mofifs par rapport  à ce que tu m"as donné...
1) Je n'ai pas un "public type" mais 

Public
Structure monHTTP

Dim Adresses()
As
String

End
Structure

2) A la place de "ReDim LireToutesLesAdresses(intIndex)" j'ai ReDim

LireToutesLesAdresses.Adresses(intIndex)

Je récupère les bonnes RUl qu'il faut à chaque fois mais en faisant le ReDim les adresses de monHTTP s'efface
Commenter la réponse de cmiss16
Messages postés
123
Date d'inscription
dimanche 9 mars 2003
Dernière intervention
29 avril 2009
0
Merci
Oupsss, rajoute le mot-clé Preserve après ReDim sinon il efface le tableau à chaque fois, désolé.
(j'utilise cette méthode par soucis d'économie de mémoire mais surtout parce que je connais la taille max du tableau à chaque modif, c'est plus pratique!)
Commenter la réponse de dthuler
Messages postés
21
Date d'inscription
lundi 3 avril 2006
Dernière intervention
13 novembre 2006
0
Merci
Tout marche...
Merci David
Commenter la réponse de cmiss16
Messages postés
123
Date d'inscription
dimanche 9 mars 2003
Dernière intervention
29 avril 2009
0
Merci
Content d'avoir pu t'aider!
David
Commenter la réponse de dthuler

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.