From 2be19fdf9d07955db793eea48c3d3818bd2e8588 Mon Sep 17 00:00:00 2001 From: h677 Date: Sun, 27 Jul 2008 16:26:14 +0000 Subject: [PATCH] =?utf8?q?=E3=83=AC=E3=82=B9ID=E3=81=AE=E5=88=A4=E5=AE=9A?= =?utf8?q?=E6=9D=A1=E4=BB=B6=E3=82=92=E4=BF=AE=E6=AD=A3=E3=80=82=20id:?= =?utf8?q?=E3=81=A7=E5=A7=8B=E3=81=BE=E3=81=A3=E3=81=A6=E6=9C=80=E5=BE=8C?= =?utf8?q?=E3=82=82=E3=81=97=E3=81=8F=E3=81=AF=E5=8D=8A=E8=A7=92=E7=A9=BA?= =?utf8?q?=E7=99=BD=E3=81=BE=E3=81=A7=E3=81=8B=E3=80=81=20id:=E3=81=8C?= =?utf8?q?=E3=81=AA=E3=81=84=E3=81=A8=E3=81=8D=E3=81=AF=E3=80=81=E5=8D=8A?= =?utf8?q?=E8=A7=92=E7=A9=BA=E7=99=BD=E5=8C=BA=E5=88=87=E3=82=8A=E3=81=A7?= =?utf8?q?=E3=80=813=E7=95=AA=E7=9B=AE(1=E3=82=AA=E3=83=AA=E3=82=B8?= =?utf8?q?=E3=83=B3)=E3=81=AE=E6=96=87=E5=AD=97=E5=88=97=20=E3=81=AB?= =?utf8?q?=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Giko.pas | 24 +------------------ GikoSystem.pas | 74 ++++++++++++++++++++++++---------------------------------- 2 files changed, 31 insertions(+), 67 deletions(-) diff --git a/Giko.pas b/Giko.pas index 3ba0a37..5008755 100644 --- a/Giko.pas +++ b/Giko.pas @@ -6820,29 +6820,7 @@ begin Exit; if (e.className = 'date') or (e.id = 'date') then begin - AID := e.innerText; - if AnsiPos('id', AnsiLowerCase(AID)) > 0 then begin - AID := Copy(AID, AnsiPos('id', AnsiLowerCase(AID)) - 1, 11); - if AnsiPos(' be:', AnsiLowerCase(AID)) > 0 then begin - AID := Copy(AID, 1, AnsiPos(' BE:', AnsiLowerCase(AID)) - 1) - end; - end else begin - stlist := TStringList.Create; - try - stList.DelimitedText := AID; - AID := ''; - for i := 0 to stList.Count - 1 do begin - if Length(WideString(stList[i])) = 8 then begin - if GikoSys.NotDateorTimeString(stList[i]) then begin - AID := stList[i]; - break; - end; - end; - end; - finally - stList.Free; - end; - end; + AID := GikoSys.ExtructResID(e.innerText); ShowSameIDAncher(AID); end; except diff --git a/GikoSystem.pas b/GikoSystem.pas index d579b85..3b04cc1 100644 --- a/GikoSystem.pas +++ b/GikoSystem.pas @@ -217,6 +217,7 @@ type procedure GetSameIDRes(const AID : string; ThreadItem: TThreadItem;var body: TStringList); overload; procedure GetSameIDRes(AIDNum : Integer; ThreadItem: TThreadItem;var body: TStringList); overload; function GetResID(AIDNum: Integer; ThreadItem: TThreadItem): String; + function ExtructResID(ADateStr: String): String; //! ’PŒê‰ðÍ procedure SpamCountWord( const text : string; wordCount : TWordCount ); //! ŠwKƒNƒŠƒA @@ -225,8 +226,6 @@ type procedure SpamLearn( wordCount : TWordCount; isSpam : Boolean ); //! ƒXƒpƒ€“x” function SpamParse( const text : string; wordCount : TWordCount ) : Extended; - //ˆø”‚ªA“ú•t‚Å‚àŽž‚Å‚à‚È‚¢‚±‚Ƃ𒲂ׂé - function NotDateorTimeString(const AStr : string): boolean; //! ˆø”‚É‘—‚ç‚ê‚Ä‚«‚½“ú•t/ID•”‚ÉBE‚Ì•¶Žš—ñ‚ª‚ ‚Á‚½‚çAƒvƒƒtƒ@ƒCƒ‹‚ւ̃Šƒ“ƒN‚ð’ljÁ function AddBeProfileLink(AID : string; ANum: Integer): string; @@ -2882,8 +2881,6 @@ function TGikoSys.GetResID(AIDNum: Integer; ThreadItem: TThreadItem): String; var Res: TResRec; boardPlugIn : TBoardPlugIn; - stList: TStringList; - i : Integer; begin Result := ''; if (ThreadItem <> nil) and (ThreadItem.IsLogFile) @@ -2897,51 +2894,40 @@ begin end else begin THTMLCreate.DivideStrLine( ReadThreadFile(ThreadItem.GetThreadFileName, AIDNum), @Res); end; - Result := Res.FDateTime; - if AnsiPos('id', AnsiLowerCase(Result)) > 0 then begin - Result := Copy(Result, AnsiPos('id', AnsiLowerCase(Result)) - 1, 11); - if AnsiPos(' be:', AnsiLowerCase(Result)) > 0 then begin - Result := Copy(Result, 1, AnsiPos(' BE:', AnsiLowerCase(Result)) - 1) - end; - end else begin - stlist := TStringList.Create; - try - stList.DelimitedText := Result; - Result := ''; - for i := 0 to stList.Count - 1 do - if Length(WideString(stList[i])) = 8 then begin - if NotDateorTimeString(stList[i]) then begin - Result := stList[i]; - break; - end; - end; - finally - stList.Free; - end; - end; + Result := ExtructResID(Res.FDateTime); end; end; - {! -\brief Žž‚ðŽ¦‚·•¶Žš—ñ‚Å‚Í–³‚¢‚©‚Ç‚¤‚© -\param AStr ’²‚ׂ镶Žš—ñ -\return Žž‚Å‚Í–³‚¢‚È‚ç True -\todo ”Û’èŒ`(Not)‚æ‚èm’èŒn(Is) +\brief ƒŒƒX‚ÌŽž•”‚©‚çID‚𒊏o‚·‚é +\param ADateStr Žž•”‚Ì•¶Žš—ñ +\return ID(ID‚Æ‚Ý‚È‚¹‚é•”•ª‚ª‚È‚¢‚Æ‚«‚͋󕶎š—ñ) } -function TGikoSys.NotDateorTimeString(const AStr : string): boolean; +function TGikoSys.ExtructResID(ADateStr: String): String; +var + stlist : TStringList; begin - Result := false; - try - StrToDate(AStr); - except - try - StrToTime(AStr); - Result := false; - except - Result := true; - end; - end; - + Result := ''; + if AnsiPos('id', AnsiLowerCase(ADateStr)) > 0 then begin + Result := Copy(ADateStr, AnsiPos('id', AnsiLowerCase(ADateStr)), Length(ADateStr)); + if AnsiPos(' ', Result) > 0 then begin + Result := Copy(Result, 1, AnsiPos(' ', Result) - 1); + end; + Result := ' ' + Result; + end else begin + stlist := TStringList.Create; + try + stList.Delimiter := ' '; + stList.DelimitedText := ADateStr; + // “ú•t Žž ID ‘¼@‚ƌŒè‚ōl‚¦‚é + if (stList.Count >= 3) then begin + if Length(stList[3 - 1]) >= 7 then begin + Result := stList[3 - 1]; + end; + end; + finally + stList.Free; + end; + end; end; {! -- 2.11.0