OSDN Git Service

1.59.0.777
[gikonavigoeson/gikonavi.git] / HTMLCreate.pas
index 8ba7bec..4a284f1 100644 (file)
@@ -32,7 +32,7 @@ type
                //! \89½\8ds\82Ü\82Å\82½\82ß\82é\82©\82Ì\83T\83C\83Y
                FBuffSize: Integer;
                //! \83u\83\89\83E\83U\82ÌIHTMLDocument2\83C\83\93\83^\83t\83F\81[\83X\82ð\95Û\8e\9d\82·\82é open\82©\82çclose\82Ì\8aÔ\82Å
-               FBrowserDoc: Variant;
+               FBrowserDoc: OleVariant;
        public
                constructor Create(Browser: TWebBrowser; BuffSize: Integer);
                destructor Destory;
@@ -937,6 +937,7 @@ var
 begin
     No := IntToStr(index + 1);
     DivideStrLine(Line, @Res);
+    Res.FBody := DeleteLink(Res.FBody);
     AddAnchorTag(@Res);
     ConvRes(@Res, PResLink);
     Res.FDateTime := AddBeProfileLink(Res.FDateTime, index + 1);
@@ -1480,30 +1481,31 @@ end;
 class function THTMLCreate.DeleteLink(const s: string): string;
 var
        s1: string;
-       s2: string;
+    mark: string;
        idx: Integer;
-       i: Integer;
 begin
-       i := 0;
-       Result := '';
-       while True do begin
-               s1 := GikoSys.GetTokenIndex(s, '<a href="', i);
-               s2 := GikoSys.GetTokenIndex(s, '<a href="', i + 1);
-
-               idx := Pos('">', s1);
-               if idx <> 0 then
-                       Delete(s1, 1, idx + 1);
-               idx := Pos('">', s2);
-               if idx <> 0 then
-                       Delete(s2, 1, idx + 1);
-
-               Result := Result + s1 + s2;
-
-               if s2 = '' then
-                       Break;
+    mark := '<a href="';
+    Result := '';
+    s1 := s;
+    idx := AnsiPos(mark, s1);
+    while idx <> 0 do begin
+        Result := Result + Copy(s1, 1, idx - 1);
+        Delete(s1, 1, idx);
+        // \83^\83O\82Ì\83G\83\93\83h\82ð\92T\82·
+        idx := AnsiPos('">', s1);
+        if idx <> 0 then begin
+            Delete(s1, 1, idx + 1);
+        end;
+        // </a> \82Ü\82Å
+        idx := AnsiPos('</a>', s1);
+        if idx <> 0 then begin
+            Result := Result + Copy(s1, 1, idx - 1);
+            Delete(s1, 1, idx + 3);
+        end;
+        idx := AnsiPos(mark, s1);
+    end;
 
-               inc(i, 2);
-       end;
+    Result := Result + s1;
 end;
 {
 \brief  HTML\89»\82Ì\82½\82ß\82Ì\92u\8a·
@@ -1611,7 +1613,7 @@ begin
 end;
 procedure TBufferedWebBrowser.Open;
 begin
-       FBrowserDoc := Idispatch( olevariant(FBrowser.ControlInterface).Document);
+       FBrowserDoc := FBrowser.ControlInterface.Document;
        FBrowserDoc.open;
        FBrowserDoc.charset := 'Shift_JIS';
 end;