............
Publié : mar. 23/nov./2010 10:18
.......................
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
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
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.