Ver Mensaje Individual
  #3  
Antiguo 17-07-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ellucho, bienvenido a los foros de Club Delphi y como se acostumbra con los iniciados te invitamos a leer nuestra guía de estilo.


Si solamente buscas las ocurrencias entre dos cadenas exactas, sin pretender la flexibilidad que te ofrece un parser, desde Delphi podes hacer:

Código Delphi [-]
uses StrUtils;

procedure FindBetween(htmlText: string; const Since, Unto: string; Result: TStrings);
var
  p1, p2: Integer;
begin
  if (Since = '') or (Unto = '') then Exit;
  repeat
    p1 := Pos(Since, htmlText);
    p2 := PosEx(Unto, htmlText, p1);
    if (p1 <> 0) and (p2 <> 0) then
    begin
      Result.Add(Trim(Copy(htmlText, p1 + Length(since), (p2 - p1) - Length(since))));
      Delete(htmlText, 1, p2 + Length(Unto));
    end;
  until (p1=0) or (p2 = 0);
end;

Ej. de la prueba:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo2.Lines.Clear;
  FindBetween(Memo1.Text, Edit1.Text, Edit2.Text, Memo2.Lines);
end;

Salida:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 17-07-2016 a las 23:42:19.
Responder Con Cita