begin process at 2012 02 15 13:15:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

Extraire les url d'un fichier texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Extraire les url d'un fichier texte

mardi 27 février 2007 à 18:04:57 | Extraire les url d'un fichier texte

lolpop

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
mardi 27 février 2007 à 18:15:26 | Re : Extraire les url d'un fichier texte

jmfmarques

Membre Club
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 [ Lien ] (ce que tu détermine par instr(laligne, [ Lien ]) >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é.
mercredi 28 février 2007 à 14:26:12 | Re : Extraire les url d'un fichier texte

Egyde

Tu peux jeter un oeil sur une de mes sources si tu veux :
http://www.vbfrance.com/codes/COVER-SEARCH_39419.aspx

Les fonctions GetHyperText() et ExtractData() en particulier

@+
vendredi 2 mars 2007 à 01:56:40 | Re : Extraire les url d'un fichier texte

lolpop

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.
vendredi 2 mars 2007 à 12:30:28 | Re : Extraire les url d'un fichier texte

lolpop

Réponse acceptée !

Voici ce que j'ai fait et ca fonctionne:

Open App.Path & "/ok.txt" For Input As #1
While Not EOF(1)
  Input #1, a$
  ok = 0
  ligneapres = a$
 
  While InStr(ligneapres, "http://") > 0
 
        existe = InStr(ligneapres, "http://")
 
       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

             
    End If
    Wend
Wend
Close #1

vendredi 2 mars 2007 à 13:20:30 | Re : Extraire les url d'un fichier texte

Renfield

Administrateur CodeS-SourceS
Réponse acceptée !
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
   
   Set oRegExp = CreateObject("VbScript.RegExp")
   oRegExp.Global = True
   oRegExp.Pattern = "https?://[^"" <']+"
   
   For Each oMatch In oRegExp.Execute(sBuffer)
       List1.AddItem oMatch
   Next oMatch
By Renfield

Pour mettre au point vos RegExp :
http://www.vbfrance.com/codes/REGEXP-WORKSHOP_17331.aspx

Pour ne pas conserver les doublons, voir SendMessage et LB_FINDSTRINGEXACT

Renfield
Admin CodeS-SourceS- MVP Visual Basic
vendredi 2 mars 2007 à 14:03:13 | Re : Extraire les url d'un fichier texte

lolpop

Mais non elle est pas compliqué ma regex :)


Cette discussion est classée dans : fichier, texte, url, extraire


Répondre à ce message

Sujets en rapport avec ce message

Extraire du texte d'un fichier txt [ par cruzy ] bonjour à tousje ne suis pas tres expérimenté en VBA excel, mais je souhaiterais faire ceci :- j'ai un fichier texte "test.txt" contenant qqchose de c Importer fichier texte dans vb6 et rechercher une URL dedans [ par rytta87 ] Salut, Je désire mettre au point un programme pour importer un fichier texte dans vb6, ensuite faire une recherche sur les caractères pour détecter le lire et extraire une ligne d' un fichier texte (vbs) [ par liocifer ] Salut,Je viens de débuter en vbs et j' ai un souci pour lire ligne à ligne un fichier texte, puis une fois trouver la ligne correspondant à la valeur extraire données d'un fichier texte [ par Roussetj ] bonjour,je dois extraire des données situées au mileu d'un fichier texte (file.txt)existe-t-il des méthodes pr arriver à mes fins?j'avais par exemple Extraire contenu d'un fichier texte vers Excel [ par VBax ] Bonjour à tous,Je débute en VBA (du moins je pense..) . J'ai besoin d'aide pour extraire les lignes d'un fichier texte pour ensuite les coller dans u extraire une partie d'une ligne dans un fichier texte [ par alucard59300 ] Bonjour j'espère ne pas m'être trompe de partie du forum pour poster mon message je débute dans la programmation de batch et je dois faire un batch q Extraire une adresse Email d'un fichier texte [ par KoZo ] Comment faire pour extraire une adresse Email non specifiaer ( En specifiant ca forme ) d'un fichier texte connessant la ligne ou elle se trouve.Merci extraire un fichier texte [ par olivier ] je voudrait extraire un texte et le mettre dans une base de données sachant que le texte a sa 1° ligne qui permet d'avoir le nom des champsdonc sous v Extraire une portion de texte dans un fichier texte (*.txt) [ par sebmaurice ] BonjourComment, sous VB 5 Pro, puis-je extraire une portion de fichier texte à partir d'un fichier .txt (fonction similaire à "grep" sous Unix) ?Merci extraire des infos d'un fichier texte [ par foxmt ] Je souhaite récupérer les informations d'un email.Je voudrais extraire: From, To, Subject et le message en bas "Voici un texte à traiter".Comment fair


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,251 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales