Einzelnen Beitrag anzeigen

Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#7

AW: WebBrowser Html Wort für Wort auslesen

  Alt 28. Jan 2013, 20:15
Hallo,

Du kannst mal versuchen, ob folgender Code auf Deine Anforderungen anpassbar ist.

Delphi-Quellcode:
uses
  MSHTML;

procedure TForm4.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate ('some-url.htm');
end;

procedure TForm4.Button2Click(Sender: TObject);
var
  r0, r1 : IHTMLTxtRange;
  t : string;
  l : Integer;
begin
  r0 := ((WebBrowser1.Document as IHTMLDocument2).body as IHTMLBodyElement).createTextRange;
  r0.moveStart ('textedit', 0);

  while r0.text <> 'do
    begin
      r1 := r0.duplicate;
      r0.moveStart ('word', 1);
      r1.setEndPoint ('EndToStart', r0);

      t := r0.text;
      while (t <> '') and (t [1] in [#9, #10, #13]) do
        begin
          r0.moveStart ('character', 1);
          t := r0.text
        end;

      t := r1.text;
      if (t = '') then
        Continue;

      l := Length (t);
      while (t <> '' ) and (t [l] in [#9, #32]) do
        begin
          r1.moveEnd ('character', -1);
          Delete (t, l, 1);
          Dec (l)
        end;

      if l = 0 then
        Continue;

      if (l = 1) and (t [1] in ['.', ',', '!', '?']) then
        Continue;

      // ggf. auf Anhäufung ungültiger Zeichen o. ä. prüfen

      try
        r1.select;
        Application.ProcessMessages;
        Sleep (200)
      except
        // ggf. Log
        // Text in einem HTML-Container mit style="display:none / visibility:hidden" konnten nicht selektiert werden
      end;
    end;

  r0.select
end;
Gruß
Volker Zeller
  Mit Zitat antworten Zitat