Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/AbonUnit.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.17 by h677, Wed Oct 8 13:21:25 2003 UTC revision 1.18 by h677, Wed Nov 19 18:29:45 2003 UTC
# Line 63  type Line 63  type
63      function CheckAbonPopupRes(line : String) :Boolean;      function CheckAbonPopupRes(line : String) :Boolean;
64      function FindNGwords(line : String) : Boolean; overload;//1ラインずつ用。      function FindNGwords(line : String) : Boolean; overload;//1ラインずつ用。
65      function FindNGwords(line : String; var NGwordsLineNum : Integer) : Boolean; overload;//1ラインずつ用。      function FindNGwords(line : String; var NGwordsLineNum : Integer) : Boolean; overload;//1ラインずつ用。
66        function FindNGwords(line : String; var NGwordsLineNum : Integer; var Invisible : Boolean) : Boolean; overload;//1ラインずつ用。
67      function Cutoff(line : String) : Boolean; //CutOff値以上個の同じ英数が並んでいたらtrue      function Cutoff(line : String) : Boolean; //CutOff値以上個の同じ英数が並んでいたらtrue
68      //あぼ〜ん処理(NGワードでのフィルタリング)      //あぼ〜ん処理(NGワードでのフィルタリング)
69      procedure Execute(var ThreadStrings : TStringList); overload;      procedure Execute(var ThreadStrings : TStringList); overload;
# Line 247  begin Line 248  begin
248                  Delete(argline,1,pos);                  Delete(argline,1,pos);
249                  if Length(buftoken) > 0 then begin                  if Length(buftoken) > 0 then begin
250                                  bufstl.Append(buftoken);                                  bufstl.Append(buftoken);
251                    end else if ( bufstl.Count = 0 ) then begin
252                        bufstl.Append('');
253                  end;                  end;
254                      pos := AnsiPos(#9,argline);                      pos := AnsiPos(#9,argline);
255              end;              end;
# Line 340  begin Line 343  begin
343      end;      end;
344      Result := hit;      Result := hit;
345  end;  end;
346    //NGワードが含まれていたらtrueを返し、そのNGワードの行数をNGwordsLineNumに入れて返す。
347    //もしも透明あぼ〜んにするならInbisibleをtrueにして返す
348    function TAbon.FindNGwords(line : String; var NGwordsLineNum : Integer; var Invisible : Boolean) : Boolean; //1ラインずつ用。
349    var
350        lines : Integer;
351        cells : Integer;
352        hit : Boolean;
353        bufline : String;
354        start : Integer;
355    begin
356        hit := false;
357        if AnsiPos(FAbonString,line) <> 1 then begin
358            for lines := 0 to High(Ftokens) do begin
359                    hit := true;
360                bufline := line;
361                if Ftokens[lines][0] <> ''  then begin
362                    Invisible := false;
363                    start := 0;
364                end else begin
365                    Invisible := true;
366                    start := 1;
367                end;
368    
369                for cells := start to High(Ftokens[lines]) do begin
370                    if AnsiPos(Ftokens[lines][cells],bufline) = 0 then begin
371                        hit := false;
372                        break;
373                    end else begin
374                        Delete(bufline,AnsiPos(Ftokens[lines][cells],bufline),Length(Ftokens[lines][cells]));
375                    end;
376                end;
377                if hit = true then begin
378                    NGwordsLineNum := lines + 1;
379                    break;
380                end;
381            end;
382        end;
383        Result := hit;
384    end;
385    
386  //CutOff値以上個の同じ英数が並んでいたらtrue  //CutOff値以上個の同じ英数が並んでいたらtrue
387  function TAbon.Cutoff(line : String) : Boolean;  function TAbon.Cutoff(line : String) : Boolean;
388  var  var
# Line 367  var Line 410  var
410      i : Integer;      i : Integer;
411      NGwordsLine : Integer;      NGwordsLine : Integer;
412      bufline : String;      bufline : String;
413        invisi : Boolean;
414  begin  begin
415      //FRetStrings.Clear;      //FRetStrings.Clear;
416    {
417      if not ReturnNGwordLineNum then begin      if not ReturnNGwordLineNum then begin
418      //if ReturnNGwordLineNum then begin      //if ReturnNGwordLineNum then begin
419          for i:=0 to ThreadStrings.Count - 1 do begin          for i:=0 to ThreadStrings.Count - 1 do begin
# Line 391  begin Line 436  begin
436                  end;                  end;
437          end;          end;
438      end else begin      end else begin
439    }
440          for i:=0 to ThreadStrings.Count - 1 do begin          for i:=0 to ThreadStrings.Count - 1 do begin
441              NGwordsLine := 0;              NGwordsLine := 0;
442                  if FindNGwords(ThreadStrings.Strings[i], NGwordsLine) <> Reverse  then begin                  if FindNGwords(ThreadStrings.Strings[i], NGwordsLine ,invisi) <> Reverse  then begin
443                    if invisi = true then begin
444                            ThreadStrings.Strings[i] := '';
445                    end else begin
446                        if not ReturnNGwordLineNum and not SetNGResAnchor then begin
447                            ThreadStrings.Strings[i] := FAbonString;
448                        end else if not ReturnNGwordLineNum then begin
449                            ThreadStrings.Strings[i] := Format('&nbsp;<>&nbsp;<>&nbsp;<>&gt;%d<><>',[(i+1)]);
450                        end else if not SetNGResAnchor then begin
451                            ThreadStrings.Strings[i] := Format('&nbsp;<>&nbsp;<>&nbsp;<><B> %d 行目のNGワードが含まれています。</B><><>',[NGwordsLine]);
452                        end else begin
453                            ThreadStrings.Strings[i] := Format('&nbsp;<>&nbsp;<>&nbsp;<><B> %d 行目のNGワードが含まれています。</B>&gt;%d <><>',[NGwordsLine,(i+1)]);
454                        end;
455                    end;
456    
457                    {
458                  if not SetNGResAnchor then                  if not SetNGResAnchor then
459                      ThreadStrings.Strings[i] := Format('&nbsp;<>&nbsp;<>&nbsp;<><B> %d 行目のNGワードが含まれています。</B><><>',[NGwordsLine])                      ThreadStrings.Strings[i] := Format('&nbsp;<>&nbsp;<>&nbsp;<><B> %d 行目のNGワードが含まれています。</B><><>',[NGwordsLine])
460                  else                  else
461                          ThreadStrings.Strings[i] := Format('&nbsp;<>&nbsp;<>&nbsp;<><B> %d 行目のNGワードが含まれています。</B>&gt;%d <><>',[NGwordsLine,(i+1)]);                          ThreadStrings.Strings[i] := Format('&nbsp;<>&nbsp;<>&nbsp;<><B> %d 行目のNGワードが含まれています。</B>&gt;%d <><>',[NGwordsLine,(i+1)]);
462                    }
463                  end else begin                  end else begin
464                  bufline := ThreadStrings.Strings[i];                  bufline := ThreadStrings.Strings[i];
465                  if Deleterlo = true then begin                  if Deleterlo = true then begin
# Line 412  begin Line 474  begin
474                  end;                  end;
475          end;          end;
476    
477      end;  //    end;
478    
479  end;  end;
480  procedure TAbon.Execute(var ThreadStrings : TStringList; NGwords : TStringList);  procedure TAbon.Execute(var ThreadStrings : TStringList; NGwords : TStringList);

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26