Dans un TextBox Cherche http jusqua /img_ puis efface 20000 liens [Résolu]

Signaler
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013
-
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013
-
Bonjour,
J’ai encore besoin de votre aide

Voila dans un fichier txt ou Textbox ou meme RichTextBox avec des plus de 20000 liens d’images que je veux retirer est ne laisser que le nom de l’image.
Exemple :
Au lieu de
http://www.monsite.fr/images/dvd/img_12365478.jpg
je veut
img_12365478.jpg

Je cherche une fonction de recherche puis remplace qui démarre de http jusqu'à /img_ est ne laisse que le nom de l’image

Merci d'avance

20 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
... c'est vraiment navrant

bref !
dans c:\test.txt j'ai copié ton post en rouge (page1 de ce thread)

ensuite, inspiré du lien indiqué (qui permettait de supprimer un texte "entre 2 autres") :

Private Sub Form_Load()
    RichTextBox1.FileName = "c:\test.txt"
End Sub

Private Sub Command1_Click()
'   txt en mémoire (plus rapide que dans le composant !)
    Dim sText As String
    sText = RichTextBox1.Text
    
'   tant qu'on a du texte commençant par "http://www.monsite.fr/images/",
'   on supprime ce texte jusqu'au préfixe (NUMERO) inclus
    Dim lPosL As Long, lPosR As Long
    Do While InStr(1, sText, "http://www.monsite.fr/images/")
        lPosL InStr(1, sText, "http"): lPosR InStr(lPosL + 1, sText, "img")
        If lPosL > 0 And lPosR > 0 Then sText = Left$(sText, lPosL - 1) & Mid$(sText, lPosR + 4)
    Loop

'   affichage
    RichTextBox1.Text = sText
End Sub


résultat instantané...


extrait de trace
128.48;http://www.monsite.fr/images/2/2/04851322/img_04851322.jpg;En Stock;
devient
128.48;04851322.jpg;En Stock;

bonne soirée
[hr]
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
2
bonjour
dim sep()as string,sp()as string,i as long
'on découpe le texte suivant le lien
sep = split(txt,"http://www.monsite.fr/images/dvd/img_")
'on le parcours
for i = 0 to ubound(sep)
'on decoupe le lien
sp = split(sep(i),".jpg")
'on ajoute le nom de chaque photo dans une liste
list1.additem sp(0) & ".jpg"
next


j'ai écris le code ici mais sa doit fonctionner normalement si le nom de site ne change pas bien sure, vue que tu nous a pas donner plus d'information.
si sa fonctionne pas donne nous un extrait du fichier texte que tu veut parcourir au moin.

Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

Bonjour,

Je suis vraiment désoler j’ai mal expliqué mon problème
C'est que les liens sont différant comme cet exemple :

http://www.monsite.fr/images/dvd/img_821458.jpg
http://www.monsite.fr/images/85432114/img_7745821.jpg
http://www.monsite.fr/images/96325/img_4102565.jpg
http://www.monsite.fr/images/front/img_821458.jpg


Merci
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
2
et le nom de domaine il est fixe comme dans ton exemple ?
c'est à dire : http://www.monsite.fr/images/ ne change pas ?


Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
2
autre question et normalement la dernière : ton texte contient que des liens ?


Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
2
si c'est le cas tu n'a qu'a changer le split
dim sep()as string,sp()as string,i as long
'on découpe le texte suivant le lien
sep = split(txt,"/img_")
'on le parcours
for i = 1 to ubound(sep)
'on decoupe le lien
sp = split(sep(i),".jpg")
'on ajoute le nom de chaque photo dans une liste
list1.additem sp(0) & ".jpg"
next



Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

voila un exmple de code

Informatique;Périphérique;Tablette graphique;PN170787;HANVON;Tablette graphique GrapicPal GP-0806 + Hub 7 ports USB 2.0 + Câble USB 2.0 A mâle / femelle - 5 m (MC922AMF-5M);Compatible avec les logiciels graphiques les plus courants, la tablette graphique GrapicPal GP-0806 d'Hanvon est idéale pour combiner écriture manuscrite et travaux numériques. Son espace actif de 8 x 6 pouces et sa résolution de 4000 lpi, combinés à une sensibilité de 1024 niveaux, offrent toute la précision nécessaire pour annoter, signer, dessiner et rédiger des mails.  Livrée avec le logiciel Havon Soft Office Assistant Tools compatible Windows, la tablette graphique GrapicPal GP0806 d'Hanvon évite de choisir entre écriture manuscrite et écriture numérique !;127.19;8.99;128.48;http://www.monsite.fr/images/2/2/04851322/img_04851322.jpg;En Stock;1.653;1.562
Informatique;Périphérique;Tablette graphique;PN179394;HANVON;Tablette graphique GrapicPal GP-0806 + Hub 4 ports USB 2.0;Compatible avec les logiciels graphiques les plus courants, la tablette graphique GrapicPal GP-0806 d'Hanvon est idéale pour combiner écriture manuscrite et travaux numériques. Son espace actif de 8 x 6 pouces et sa résolution de 4000 lpi, combinés à une sensibilité de 1024 niveaux, offrent toute la précision nécessaire pour annoter, signer, dessiner et rédiger des mails.  Livrée avec le logiciel Havon Soft Office Assistant Tools compatible Windows, la tablette graphique GrapicPal GP0806 d'Hanvon évite de choisir entre écriture manuscrite et écriture numérique !;115.69;8.99;116.86;http://www.monsite.fr/images/2/2/04851322/img_04851322.jpg;En Stock;1.653;1.562
Informatique;Périphérique;Souris;PN180215;MOBILITY LAB;Souris optique rechargeable WR100 Carbon + Tapis de souris PRO;La souris optique rechargeable WR100 Carbon de Mobility Lab intègre une batterie interne et un chargeur USB qui vous assure des performances optimales à tout moment de la journée ! Son capteur optique 5D de 800 dpi offre une précision accrue sur toutes les surfaces, et son design ergonomique convient aussi bien aux droitiers qu'aux gauchers. Sa base USB permet une utilisation sans fil sur 360 degrés dans un rayon de 1,8 mètre, pour une liberté de mouvements renforcée. Offrez-vous une souris au top avec la WR100 Carbon de Mobility Lab !;25.6;6.99;26.66;http://www.monsite.fr/images/4/4/04931344/img_04931344.jpg;En Stock;0.247;0.768
Informatique;Périphérique;Haut-parleur;PN287394;LOGITECH;Haut-parleurs 2.1 Z323 + Casque-micro PC .Audio DSP-400 USB;Bénéficiez d'une puissance sonore de 30 watts RMS sur votre PC avec les haut-parleurs Z323 de Logitech ! Son subwoofer à évent de décompression vous offre des basses profondes aussi bien dans les jeux que dans les films et la musique. Pratique, sa sortie casque est idéale pour profiter de la puissance des Z-323 sans déranger votre entourage. Offrez-vous un système d'enceintes 2.1 au top avec le Z323 de Logitech !;67.64;9.99;67.64;http://www.monsite.fr/images/4/2/04067224/img_04067224.jpg;En Stock;3.980;2.551
Informatique;Périphérique;Haut-parleur;PN295610;LOGITECH;Haut-parleurs 2.1 Z323 + Switch audio + Casque PC Headset 120;Bénéficiez d'une puissance sonore de 30 watts RMS sur votre PC avec les haut-parleurs Z323 de Logitech ! Son subwoofer à évent de décompression vous offre des basses profondes aussi bien dans les jeux que dans les films et la musique. Pratique, sa sortie casque est idéale pour profiter de la puissance des Z-323 sans déranger votre entourage. Offrez-vous un système d'enceintes 2.1 au top avec le Z323 de Logitech !;57.99;9.99;58.28;http://www.monsite.fr/images/4/2/04067224/img_04067224.jpg;En Stock;3.980;2.551
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
2
ta essayer le code que je t'ai donnée ? il parait que non ! parce qu'il fonctionne et viens de le tester


Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

Oui il a été tester merci bc, mais je ne peut pas envoyer le résultat sur une listbox ou un autre contrôleur, je cherche un moyen pour le modifier au même endroit
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
2
tu cherche à ré-enregistrer le fichier texte avec les nouveau liens ?


Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

oui exactement
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

j'ai modifier votre code mais, ca fonctionne, mais tres tres long



Dim sep() As String, sp() As String, i As Long
'on découpe le texte suivant le lien
sep = Split(Text1, "http")
'on le parcours
For i = 1 To UBound(sep)
'on decoupe le lien
sp = Split(sep(i), "/img_")
Text1 = Replace(Text1, sp(0), "_--_")
Next
Text1 = Replace(Text1, "http_--_/", "")
Next


Merci si vous avez une solution
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

Bonjour,

merci, avez vous une idée pour faire une boucle?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
sans te donner une fois de plus le code complet tout cuit? non...

n'attends pas la réponse, essaye, et montre-nous tes essais, là seulement on t'aidera en corrigeant ou en te mettant sur la voie.

c'est un forum d'entraide! gardons tous cette notion en tête
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

Bonjour,

Voila une autre un peut plus rapide, mais pour 20000 lignes il faut une semaine.

Dim variable1 As String, variable2 As String
Demarre1 = LCase(Replace(LCase("http"), "", vbCrLf))
Stop1 = LCase(Replace(LCase("_"), "", vbCrLf))
    While InStr(1, RichTextBox1.Text, Demarre1) > 0 And InStr(1, RichTextBox1.Text, Stop1) > 0
       DoEvents
        variable1 = InStr(1, RichTextBox1.Text, Demarre1)
        variable2 = InStr(variable1, RichTextBox1.Text, Stop1)
        RichTextBox1.Text = Mid(RichTextBox1.Text, 1, variable1 - 1) & Mid(RichTextBox1.Text, variable2 + -1)
    Wend



Je sais plus j'ai chercher toutes autre solution, mais je début donc je ne suis pas fort en boucle est autre
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

Bon juste pour dépanner, comment le faire avec Ultraedit 9 ?
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

Bonjour,

10000 fois merci

je sais pas quoi dire

bravo et merci encore

Cordialement,