Bonjour a tous!
Tout d'abord, voici ma fonction :
Cette fonction recupere un morceaux d'une chaine que l'on lui donne (En l'occurence, ici une page html..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 function Tform1.DonneCeQuiSuis(URL : string; debut:string;fin:string):string; var HTTP : TIdHTTP; Content, Link : string; Positiondeb : integer; Positionfin : integer; longueur : integer; begin HTTP := TIdHTTP.Create(nil); try //On recupere la page Content := HTTP.Get(URL); Positiondeb := 0; Positionfin := 0; //On trouve le debut du truc Positiondeb := PosEx(debut, Content, Positiondeb+1); //Si on trouve pas le mot, on laisse tombé if Positiondeb = 0 then showmessage('Aucune instance trouvée!'); //On cherche la fin de la chaine PositionFin := PosEx(fin, Content, PositionFin+1); longueur := PositionFin - (PositionDeb+length(debut)); //On copy le mot cherché dans la variable link link := copy(Content, PositionDeb+length(debut), longueur); //On renvoie le resultat! Result := link; finally HTTP.Free; end; end;
Tres pratique pour récupérer des infos...
Seulement voila
Par exemple, dans le texte suivant, je veux recupérer le mot attrapemoi
-------------------
blipblop attrapemoiblop blip
-------------------
Pas de probleme, je dit a la fonction de prendre ce qu'il y a entre blipblop et blopblip
Mais le probleme ce pose dans un texte comme celui la :
-------------------
blipattrapemoiblop
blipchopemoiblop
blipaccrochemoiblop
-------------------
Je veux recuperer ce qu'il y a entre blip et blop, le probleme, c'est que PosEx()
va s'arreter au premier blip.
Ainsi, je n'aurais que 'attrapemoi' mais pas 'chopemoi' et 'accrochemoi'
Si quelqun avais une methode, pour indiquer a posex, a la combiendième instance du mot il doit s'arreter...
Merci a vous!
Partager