From: h677 Date: Sun, 27 Jul 2008 16:26:14 +0000 (+0000) Subject: レスIDの判定条件を修正。 X-Git-Tag: v1_64_1_820~156 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=2be19fdf9d07955db793eea48c3d3818bd2e8588;p=gikonavigoeson%2Fgikonavi.git レスIDの判定条件を修正。 id:で始まって最後もしくは半角空白までか、 id:がないときは、半角空白区切りで、3番目(1オリジン)の文字列 に変更 --- 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; {!