............
............
.......................
Dernière modification par Backup le ven. 07/oct./2011 12:17, modifié 2 fois.
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Re: Extract(phrase.S,balise_gauche.S,balise_droite.S,longueu
Et avec les expressions régulières ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Re: Extract(phrase.S,balise_gauche.S,balise_droite.S,longueu
je viens de Réediter mon code ci dessus (correction d'un petit bug)
les expressions régulieres ?
oui peut etre , je sais pas m'en servir
du reste mon code permet de tenir compte de 2 balises differentes
avec les expressions reguliere ?? .. ben je sais pas
je ne sais vraiment pas me srvir de ce truc, qui m'a l'air rébarbatif
les expressions régulieres ?
oui peut etre , je sais pas m'en servir

du reste mon code permet de tenir compte de 2 balises differentes
avec les expressions reguliere ?? .. ben je sais pas
je ne sais vraiment pas me srvir de ce truc, qui m'a l'air rébarbatif

Re: Extract(phrase.S,balise_gauche.S,balise_droite.S,longueu
...........................
Dernière modification par Backup le sam. 19/mars/2011 16:38, modifié 1 fois.
-
- Messages : 471
- Inscription : dim. 23/déc./2007 18:10
Re: Extract(phrase.S,balise_gauche.S,balise_droite.S,longueu
Merci à toi.
C'est mis dans le même dossier que Dobro_replace
J'avais fais ça (Voir le tout dernier code), mais c'était pour une conversion spécifique.
J'ai d'ailleurs tester ton code avec mon exemple et ça fonctionne aussi.
A la rigueur, il n'y aurait plus qu'à faire les chercher/remplacer à la volée.
Bye.
C'est mis dans le même dossier que Dobro_replace

J'avais fais ça (Voir le tout dernier code), mais c'était pour une conversion spécifique.
J'ai d'ailleurs tester ton code avec mon exemple et ça fonctionne aussi.
A la rigueur, il n'y aurait plus qu'à faire les chercher/remplacer à la volée.
Code : Tout sélectionner
Procedure.S Extract(phrase.S,balise_gauche.S,balise_droite.S,longueur)
; by Dobro
; retourne l'extrait de chaine compris entre 2 balises
; les balises sont 1 caractere ou un mot.....
; utile pour extraire les infos d'une page web par exemple
; le parametre longueur , sert a determiner l'eccart entre 2 balises
; et de savoir si l'on recupere l'extrait si les balises sont trop éloigné
; si "dobro_stop" est renvoyé , fin de l'exploration du text$
Static pointeur_debut
Static pointeur_fin
pointeur_debut= FindString (phrase.S,balise_gauche.S,pointeur_debut)+ Len (balise_gauche.S)
pointeur_fin= FindString (phrase.S,balise_droite.S,pointeur_debut)
If (pointeur_debut- Len (balise_gauche.S))=0 Or pointeur_fin=0
extrait$= "dobro_stop" ; signale la fin du traitement
pointeur_debut=0
pointeur_fin=0
ProcedureReturn extrait$
EndIf
long=pointeur_fin-pointeur_debut
extrait$= Mid (phrase.S,pointeur_debut,long)
If Len (extrait$)<longueur
pointeur_debut=pointeur_fin
ProcedureReturn extrait$
Else
extrait$= ""
ProcedureReturn extrait$
EndIf
EndProcedure
text$= "un peu de texte [color=#000000]pour [color=#111111]tester[/color] et du [b]texte[b] collé[color=Green]en mettant Green[/color] [color=#FFFFFF]encore du bla bla[/color]"
Repeat
retour$= Extract(text$, "[color=" , "]" ,20)
If retour$<> "dobro_stop" ; on n'affiche pas le message de fin de traitement²
Debug retour$
EndIf
Until retour$= "dobro_stop"
;CallDebugger
Re: Extract(phrase.S,balise_gauche.S,balise_droite.S,longueu
.....................
Dernière modification par Backup le sam. 19/mars/2011 16:38, modifié 1 fois.
Re: Extract(phrase.S,balise_gauche.S,balise_droite.S,longueu
Merci, très utile et adaptable à toute situation



Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Version de PB : 6.00LTS - 64 bits
Re: Extract(phrase.S,balise_gauche.S,balise_droite.S,longueu
content que ça serve 

-
- Messages : 471
- Inscription : dim. 23/déc./2007 18:10
Re: Extract(phrase.S,balise_gauche.S,balise_droite.S,longueu
Tu aurais dû dire transformé à la place de révisé, parce que la façon de faire est totalement différente.Dobro a écrit :a ce propos hier soir, j'ai révisé cette procedure , en y corrigeant un petit bug
Sur ce, j'ai pris cette nouvelle procédure.
Merci.
Re: Extract(phrase.S,balise_gauche.S,balise_droite.S,longueu
nonGeo Trouvpatou a écrit :Tu aurais dû dire transformé à la place de révisé, parce que la façon de faire est totalement différente.
Sur ce, j'ai pris cette nouvelle procédure.
Merci.

il y a 2 procedures dans ce topic
Extract() qui sert a extraire une portion de caracteres coincé entre 2 "Balises"
et
Dobro_Replace2() qui sert a remplacer une expression par une autre
sans toutefois remplacer aveuglement , elle tiens compte de ne pas remplacer
l'expression , si celle-ci se trouve dans un mot
ex Leon est l'expression a remplacer par Pierre
mais pour le mot Leonidas ça n'y touchera pas

c'est de cette 2em procedure que je parlais, lorsque j'ai dis que j'avais corrigé un bug
