| 28 |
FNGwordFileIndex : Integer; //現在読み込んでるNGワードがlistの何行目か |
FNGwordFileIndex : Integer; //現在読み込んでるNGワードがlistの何行目か |
| 29 |
FNGwordname : String; //現在読み込んでるNGワードの表示名 |
FNGwordname : String; //現在読み込んでるNGワードの表示名 |
| 30 |
FIndividualFileName : String; //個別あぼ〜んのファイル名 |
FIndividualFileName : String; //個別あぼ〜んのファイル名 |
| 31 |
|
FReturnNGwordLineNum : Boolean; //NGワードの行数を返す。 |
| 32 |
|
FSetNGResAnchor : Boolean; //NGに該当したときに本文にそのレスへのレスアンカーをつけるかどうか |
| 33 |
procedure SetTokens(index: integer ; argline:String); |
procedure SetTokens(index: integer ; argline:String); |
| 34 |
function Getlistpath() : String; |
function Getlistpath() : String; |
| 35 |
procedure Setlistpath(const Value : String); |
procedure Setlistpath(const Value : String); |
| 49 |
property listpath : String read Getlistpath write Setlistpath; |
property listpath : String read Getlistpath write Setlistpath; |
| 50 |
property NGwordFileIndex : Integer read FNGwordFileIndex write FNGwordFileIndex default 0; |
property NGwordFileIndex : Integer read FNGwordFileIndex write FNGwordFileIndex default 0; |
| 51 |
property NGwordname : String read FNGwordname write FNGwordname; |
property NGwordname : String read FNGwordname write FNGwordname; |
| 52 |
|
property ReturnNGwordLineNum : Boolean read FReturnNGwordLineNum write FReturnNGwordLineNum default false; |
| 53 |
|
property SetNGResAnchor : Boolean read FSetNGResAnchor write FSetNGResAnchor default false; |
| 54 |
procedure Setroot(root :String); |
procedure Setroot(root :String); |
| 55 |
function Getroot() : String; |
function Getroot() : String; |
| 56 |
|
|
| 61 |
function ReLoadFromNGwordFile() : Boolean; |
function ReLoadFromNGwordFile() : Boolean; |
| 62 |
procedure LoadFromStringList( bufstl : TStringList ); |
procedure LoadFromStringList( bufstl : TStringList ); |
| 63 |
function CheckAbonPopupRes(line : String) :Boolean; |
function CheckAbonPopupRes(line : String) :Boolean; |
| 64 |
function FindNGwords(line : String) : Boolean; //1ラインずつ用。 |
function FindNGwords(line : String) : Boolean; overload;//1ラインずつ用。 |
| 65 |
|
function FindNGwords(line : String; var NGwordsLineNum : Integer) : Boolean; overload;//1ラインずつ用。 |
| 66 |
function Cutoff(line : String) : Boolean; //CutOff値以上個の同じ英数が並んでいたらtrue |
function Cutoff(line : String) : Boolean; //CutOff値以上個の同じ英数が並んでいたらtrue |
| 67 |
//あぼ〜ん処理(NGワードでのフィルタリング) |
//あぼ〜ん処理(NGワードでのフィルタリング) |
| 68 |
procedure Execute(var ThreadStrings : TStringList); overload; |
procedure Execute(var ThreadStrings : TStringList); overload; |
| 310 |
end; |
end; |
| 311 |
end; |
end; |
| 312 |
Result := hit; |
Result := hit; |
| 313 |
|
end; |
| 314 |
|
//NGワードが含まれていたらtrueを返し、そのNGワードの行数をNGwordsLineNumに入れて返す |
| 315 |
|
function TAbon.FindNGwords(line : String; var NGwordsLineNum : Integer) : Boolean; |
| 316 |
|
var |
| 317 |
|
lines : Integer; |
| 318 |
|
cells : Integer; |
| 319 |
|
hit : Boolean; |
| 320 |
|
bufline : String; |
| 321 |
|
begin |
| 322 |
|
hit := false; |
| 323 |
|
if AnsiPos(FAbonString,line) <> 1 then begin |
| 324 |
|
for lines := 0 to High(Ftokens) do begin |
| 325 |
|
hit := true; |
| 326 |
|
bufline := line; |
| 327 |
|
for cells := 0 to High(Ftokens[lines]) do begin |
| 328 |
|
if AnsiPos(Ftokens[lines][cells],bufline) = 0 then begin |
| 329 |
|
hit := false; |
| 330 |
|
break; |
| 331 |
|
end else begin |
| 332 |
|
Delete(bufline,AnsiPos(Ftokens[lines][cells],bufline),Length(Ftokens[lines][cells])); |
| 333 |
|
end; |
| 334 |
|
end; |
| 335 |
|
if hit = true then begin |
| 336 |
|
NGwordsLineNum := lines + 1; |
| 337 |
|
break; |
| 338 |
|
end; |
| 339 |
|
end; |
| 340 |
|
end; |
| 341 |
|
Result := hit; |
| 342 |
end; |
end; |
| 343 |
//CutOff値以上個の同じ英数が並んでいたらtrue |
//CutOff値以上個の同じ英数が並んでいたらtrue |
| 344 |
function TAbon.Cutoff(line : String) : Boolean; |
function TAbon.Cutoff(line : String) : Boolean; |
| 365 |
procedure TAbon.Execute(var ThreadStrings : TStringList); |
procedure TAbon.Execute(var ThreadStrings : TStringList); |
| 366 |
var |
var |
| 367 |
i : Integer; |
i : Integer; |
| 368 |
|
NGwordsLine : Integer; |
| 369 |
bufline : String; |
bufline : String; |
| 370 |
begin |
begin |
| 371 |
//FRetStrings.Clear; |
//FRetStrings.Clear; |
| 372 |
|
if not ReturnNGwordLineNum then begin |
| 373 |
|
//if ReturnNGwordLineNum then begin |
| 374 |
|
for i:=0 to ThreadStrings.Count - 1 do begin |
| 375 |
|
if FindNGwords(ThreadStrings.Strings[i]) <> Reverse then begin |
| 376 |
|
if not SetNGResAnchor then |
| 377 |
|
ThreadStrings.Strings[i] := FAbonString |
| 378 |
|
else |
| 379 |
|
ThreadStrings.Strings[i] := Format(' <> <> <>>%d<><>',[(i+1)]); |
| 380 |
|
end else begin |
| 381 |
|
bufline := ThreadStrings.Strings[i]; |
| 382 |
|
if Deleterlo = true then begin |
| 383 |
|
bufline := AnsiReplaceText( bufline,'&rlo;','' ); |
| 384 |
|
end; |
| 385 |
|
if Replaceul = true then begin |
| 386 |
|
bufline := AnsiReplaceText( bufline,'<ul>','<br>' ); |
| 387 |
|
bufline := AnsiReplaceText( bufline,'</ul>','<br>' ); |
| 388 |
|
end; |
| 389 |
|
ThreadStrings.Strings[i] := bufline; |
| 390 |
|
end; |
| 391 |
|
end; |
| 392 |
|
end else begin |
| 393 |
|
for i:=0 to ThreadStrings.Count - 1 do begin |
| 394 |
|
NGwordsLine := 0; |
| 395 |
|
if FindNGwords(ThreadStrings.Strings[i], NGwordsLine) <> Reverse then begin |
| 396 |
|
if not SetNGResAnchor then |
| 397 |
|
ThreadStrings.Strings[i] := Format(' <> <> <><B> %d 行目のNGワードが含まれています。</B><><>',[NGwordsLine]) |
| 398 |
|
else |
| 399 |
|
ThreadStrings.Strings[i] := Format(' <> <> <><B> %d 行目のNGワードが含まれています。</B>>%d <><>',[NGwordsLine,(i+1)]); |
| 400 |
|
end else begin |
| 401 |
|
bufline := ThreadStrings.Strings[i]; |
| 402 |
|
if Deleterlo = true then begin |
| 403 |
|
bufline := AnsiReplaceText( bufline,'&rlo;','' ); |
| 404 |
|
end; |
| 405 |
|
if Replaceul = true then begin |
| 406 |
|
bufline := AnsiReplaceText( bufline,'<ul>','<br>' ); |
| 407 |
|
bufline := AnsiReplaceText( bufline,'</ul>','<br>' ); |
| 408 |
|
end; |
| 409 |
|
ThreadStrings.Strings[i] := bufline; |
| 410 |
|
end; |
| 411 |
|
end; |
| 412 |
|
|
|
for i:=0 to ThreadStrings.Count - 1 do begin |
|
|
if FindNGwords(ThreadStrings.Strings[i]) <> Reverse then begin |
|
|
ThreadStrings.Strings[i] := FAbonString; |
|
|
end else begin |
|
|
bufline := ThreadStrings.Strings[i]; |
|
|
if Deleterlo = true then begin |
|
|
bufline := AnsiReplaceText( bufline,'&rlo;','' ); |
|
|
end; |
|
|
if Replaceul = true then begin |
|
|
bufline := AnsiReplaceText( bufline,'<ul>','<br>' ); |
|
|
bufline := AnsiReplaceText( bufline,'</ul>','<br>' ); |
|
|
end; |
|
|
ThreadStrings.Strings[i] := bufline; |
|
|
end; |
|
| 413 |
end; |
end; |
| 414 |
|
|
| 415 |
end; |
end; |