Попробуйте еще вот такую функцию
| Код |
|---|
Procedure IsolateText( Const S: String; Tag1, Tag2: String; list:TStrings ); Var pScan, pEnd, pTag1, pTag2: PChar; foundText: String; searchtext: String; Begin searchtext := Uppercase(S); Tag1:= Uppercase( Tag1 ); Tag2:= Uppercase( Tag2 ); pTag1:= PChar(Tag1); pTag2:= PChar(Tag2); pScan:= PChar(searchtext); Repeat pScan:= StrPos( pScan, pTag1 ); If pScan <> Nil Then Begin Inc(pScan, Length( Tag1 )); pEnd := StrPos( pScan, pTag2 ); If pEnd <> Nil Then Begin SetString( foundText, Pchar(S) + (pScan- PChar(searchtext) ), pEnd - pScan ); list.Add( foundText ); pScan := pEnd + Length(tag2); End Else pScan := Nil; End; Until pScan = Nil; End; |