| 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; |
| 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; |
| 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 |
| 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 |
| 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(' <> <> <>>%d<><>',[(i+1)]); |
| 450 |
|
end else if not SetNGResAnchor then begin |
| 451 |
|
ThreadStrings.Strings[i] := Format(' <> <> <><B> %d 行目のNGワードが含まれています。</B><><>',[NGwordsLine]); |
| 452 |
|
end else begin |
| 453 |
|
ThreadStrings.Strings[i] := Format(' <> <> <><B> %d 行目のNGワードが含まれています。</B>>%d <><>',[NGwordsLine,(i+1)]); |
| 454 |
|
end; |
| 455 |
|
end; |
| 456 |
|
|
| 457 |
|
{ |
| 458 |
if not SetNGResAnchor then |
if not SetNGResAnchor then |
| 459 |
ThreadStrings.Strings[i] := Format(' <> <> <><B> %d 行目のNGワードが含まれています。</B><><>',[NGwordsLine]) |
ThreadStrings.Strings[i] := Format(' <> <> <><B> %d 行目のNGワードが含まれています。</B><><>',[NGwordsLine]) |
| 460 |
else |
else |
| 461 |
ThreadStrings.Strings[i] := Format(' <> <> <><B> %d 行目のNGワードが含まれています。</B>>%d <><>',[NGwordsLine,(i+1)]); |
ThreadStrings.Strings[i] := Format(' <> <> <><B> %d 行目のNGワードが含まれています。</B>>%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 |
| 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); |