OSDN Git Service

Beログイン仕様変更に対応
[gikonavigoeson/gikonavi.git] / HTMLCreate.pas
index 21d5d3d..ce950e1 100644 (file)
@@ -600,6 +600,7 @@ const
        _END: string = '&END=';
 var
        i, j, k: Integer;
+    hpos, qpos : Integer;
        tmp: string;
        res: string;
 begin
@@ -627,10 +628,21 @@ begin
                end else begin
                        k := LastDelimiter('/', tmp);
                        Delete(tmp, 1, k);
-                       if AnsiPos('-', tmp) < AnsiPos('"', tmp) then
-                               Delete(tmp, AnsiPos('-', tmp), Length(tmp))
-                       else
-                               Delete(tmp, AnsiPos('"', tmp), Length(tmp));
+            hpos := AnsiPos('-', tmp);
+            qpos := AnsiPos('"', tmp);
+            if ( (hpos > 0) and (qpos > 0) ) then begin
+                if ( qpos < hpos ) then begin
+                    Delete(tmp, qpos, Length(tmp));
+                end else begin
+                    Delete(tmp, hpos, Length(tmp));
+                end;
+            end else begin
+                if ( qpos > 0 ) then begin
+                    Delete(tmp, qpos, Length(tmp));
+                end else if ( qpos > 0 ) then begin
+                    Delete(tmp, hpos, Length(tmp));
+                end;
+            end;
 
                        PRes.FBody := PRes.FBody + '<a href="#' + tmp + '">';
                end;
@@ -1459,10 +1471,10 @@ begin
                Line := CustomStringReplace(Line, '\81\97\81M', ',');
        end;
        //Trim\82µ\82Ä\82Í\82¢\82¯\82È\82¢\8bC\82ª\82·\82é\81@by\82à\82\82ã
-       PRes.FName := RemoveToken(Line, delimiter);
-       PRes.FMailTo := RemoveToken(Line, delimiter);
-       PRes.FDateTime := RemoveToken(Line, delimiter);
-       PRes.FBody := RemoveToken(Line, delimiter);
+       PRes.FName := MojuUtils.RemoveToken(Line, delimiter);
+       PRes.FMailTo := MojuUtils.RemoveToken(Line, delimiter);
+       PRes.FDateTime := MojuUtils.RemoveToken(Line, delimiter);
+       PRes.FBody := MojuUtils.RemoveToken(Line, delimiter);
        //\82Q\82¿\82á\82ñ\82Ë\82é\82Æ\82©\82¾\82Æ\81A\96{\95\82Ì\90æ\93ª\82É\82P\82Â\94¼\8ap\8bó\94\92\82ª\93ü\82Á\82Ä\82¢\82é\82Ì\82Å\8dí\8f\9c\82·\82é
        //\91¼\82Ì\8cf\8e¦\94Â\82Å\81A\83\8c\83X\8e©\91Ì\82Ì\8bó\94\92\82©\82à\82µ\82ê\82È\82¢\82¯\82Ç\82»\82ê\82Í\92ú\82ß\82é
        PRes.FBody := TrimLeft(PRes.FBody);
@@ -1470,7 +1482,7 @@ begin
        if PRes.FBody = '' then
                PRes.FBody := '&nbsp;';
 
-       PRes.FTitle := RemoveToken(Line, delimiter);
+       PRes.FTitle := MojuUtils.RemoveToken(Line, delimiter);
 end;
 
 {!
@@ -1481,30 +1493,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·