Hola Jovalca.
Cita:
Empezado por Jovalca
Crees que el fallo puede estar en la función de extraer?
|
Yo creo que si, fijate de este modo:
Código:
...
uses StrUtils;
procedure ExtractText(const Tag, Text: string; TS: TStrings);
var
p1, p2: Integer;
sufijo, prefijo: string;
begin
sufijo := '<' + Tag;
prefijo:= '</' + Tag + '>';
p1:= Pos(sufijo, Text);
repeat
p2:= PosEx(prefijo, Text, p1 + 1);
if p2 > p1 then
TS.Add(Copy(Text, p1, p2 - p1 + Length(prefijo)));
p1:= PosEx(sufijo, Text, p2);
until p1 < p2;
end;
Usando la cadena que pusiste en el mensaje
#5,
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
s: AnsiString;
begin
s:= '<t>115451</t>'+
'<t>fgfdgdfg<dfg/tdfdsf>fdgfdnkjghrehiu4yi5yuihgfjdrgjkbdfnjgkndfjkngjkndfkjgnkjdfnjkgjkdfngjkdnfjkgkjdfngh<t>45345456gdf</t>'+
'<t>wwwwwwwwwwwwwwwww<1/t>'+
'<t>00000000</t>'+
'<t>534fdgfd45345</t>'+
'<t>gdfdfg</t>'+
'<t>24981vvvvvvvvv</t>'+
' <t>21f5f1eeeeeeeeee</t>'+
'<t>24981vvvvvvvvv</t> <t>21f5f1eeeeeeeeee</t>';
Memo1.Clear;
ExtractText('t', s, Memo1.Lines);
end;
se obtiene este resultado:
Saludos
Nota: Usé etiquetas
code para evitar la desaparición de texto por las secuencias <t>, </t>.