| 12 |
FNGwordpath : String; |
FNGwordpath : String; |
| 13 |
Ftokens : array of array of string; |
Ftokens : array of array of string; |
| 14 |
FAbonString : String; |
FAbonString : String; |
|
FRetStrings : TStringList; |
|
| 15 |
FCutoffNum : Integer; //この数以上連続する同じ英字をNGワードとする |
FCutoffNum : Integer; //この数以上連続する同じ英字をNGワードとする |
| 16 |
FDeleterlo : Boolean; //&rlo;を削るか |
FDeleterlo : Boolean; //&rlo;を削るか |
| 17 |
FReplaceul :Boolean ; //<ul>タグを<br>タグに置換するか |
FReplaceul :Boolean ; //<ul>タグを<br>タグに置換するか |
| 43 |
function FindNGwords(line : String) : Boolean; //1ラインずつ用。 |
function FindNGwords(line : String) : Boolean; //1ラインずつ用。 |
| 44 |
function Cutoff(line : String) : Boolean; //CutOff値以上個の同じ英数が並んでいたらtrue |
function Cutoff(line : String) : Boolean; //CutOff値以上個の同じ英数が並んでいたらtrue |
| 45 |
//あぼ〜ん処理 |
//あぼ〜ん処理 |
| 46 |
function Execute(DestStrings : TStringList) : TStringList; overload; |
procedure Execute(var ThreadStrings : TStringList); overload; |
| 47 |
function Execute(DestStrings : TStringList; NGwords : TStringList) : TStringList; overload; |
procedure Execute(var ThreadStrings : TStringList; NGwords : TStringList); overload; |
| 48 |
function Execute(DestStrings : TStringList; NGwords : TStrings) : TStringList; overload; |
procedure Execute(var ThreadStrings : TStringList; NGwords : TStrings); overload; |
| 49 |
//-- |
//-- |
| 50 |
function ExecuteFile(datfilepath : String; NGwordpath : String) : Boolean; overload;//DATファイルを直にいじる |
function ExecuteFile(datfilepath : String; NGwordpath : String) : Boolean; overload;//DATファイルを直にいじる |
| 51 |
function ExecuteFile(datfilepath : String; resnum : Integer) : Boolean; overload; //DATファイルを直にいじる |
function ExecuteFile(datfilepath : String; resnum : Integer) : Boolean; overload; //DATファイルを直にいじる |
| 66 |
begin |
begin |
| 67 |
// 初期化 |
// 初期化 |
| 68 |
FAbonString := ' <> <> <> <><>'; |
FAbonString := ' <> <> <> <><>'; |
| 69 |
FRetStrings := TStringList.Create; |
//FRetStrings := TStringList.Create; |
| 70 |
FCreateNGwordFile := true; |
FCreateNGwordFile := true; |
| 71 |
SetCutoffNum(0); |
SetCutoffNum(0); |
| 72 |
end; |
end; |
| 73 |
|
|
| 74 |
destructor TAbon.Destroy; |
destructor TAbon.Destroy; |
| 75 |
begin |
begin |
| 76 |
FRetStrings.Free; |
//FRetStrings.Free; |
| 77 |
inherited; |
inherited; |
| 78 |
end; |
end; |
| 79 |
|
|
| 256 |
Result := ret; |
Result := ret; |
| 257 |
end; |
end; |
| 258 |
//末尾のブール値はtrueだと、NGワードを含むものだけを返す。 |
//末尾のブール値はtrueだと、NGワードを含むものだけを返す。 |
| 259 |
function TAbon.Execute(DestStrings : TStringList) : TStringList; |
procedure TAbon.Execute(var ThreadStrings : TStringList); |
| 260 |
var |
var |
| 261 |
i : Integer; |
i : Integer; |
| 262 |
j : Integer; |
j : Integer; |
| 263 |
bufline : String; |
bufline : String; |
| 264 |
begin |
begin |
| 265 |
FRetStrings.Clear; |
//FRetStrings.Clear; |
| 266 |
|
|
| 267 |
//if Reverse = false then begin |
for i:=0 to ThreadStrings.Count - 1 do begin |
| 268 |
for i:=0 to DestStrings.Count - 1 do begin |
if FindNGwords(ThreadStrings.Strings[i]) <> Reverse then begin |
| 269 |
if FindNGwords(DestStrings.Strings[i]) <> Reverse then begin |
ThreadStrings.Strings[i] := FAbonString; |
| 270 |
FRetStrings.Append(FAbonString); |
end else if FCutoffNum > 0 then begin |
| 271 |
end else if FCutoffNum > 0 then begin |
bufline := ThreadStrings.Strings[i]; |
| 272 |
bufline := DestStrings.Strings[i]; |
for j := 0 to 2 do begin |
| 273 |
for j := 0 to 2 do begin |
Delete(bufline,1,Ansipos('<>',bufline)+1); |
| 274 |
Delete(bufline,1,Ansipos('<>',bufline)+1); |
end; |
| 275 |
end; |
Delete(bufline,Ansipos('<>',bufline),Length(bufline)-Ansipos('<>',bufline)+1); |
| 276 |
Delete(bufline,Ansipos('<>',bufline),Length(bufline)-Ansipos('<>',bufline)+1); |
if Cutoff(bufline) = true then begin |
| 277 |
if Cutoff(bufline) = true then begin |
ThreadStrings.Strings[i] := FAbonString; |
|
FRetStrings.Append(FAbonString); |
|
|
end else begin |
|
|
bufline := DestStrings.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; |
|
|
FRetStrings.Append(bufline); |
|
|
end; |
|
| 278 |
end else begin |
end else begin |
| 279 |
bufline := DestStrings.Strings[i]; |
bufline := ThreadStrings.Strings[i]; |
| 280 |
if Deleterlo = true then begin |
if Deleterlo = true then begin |
| 281 |
bufline := AnsiReplaceText( bufline,'&rlo;','' ); |
bufline := AnsiReplaceText( bufline,'&rlo;','' ); |
| 282 |
end; |
end; |
| 284 |
bufline := AnsiReplaceText( bufline,'<ul>','<br>' ); |
bufline := AnsiReplaceText( bufline,'<ul>','<br>' ); |
| 285 |
bufline := AnsiReplaceText( bufline,'</ul>','<br>' ); |
bufline := AnsiReplaceText( bufline,'</ul>','<br>' ); |
| 286 |
end; |
end; |
| 287 |
FRetStrings.Append(bufline); |
ThreadStrings.Strings[i] := bufline; |
| 288 |
end; |
end; |
| 289 |
end; |
end else begin |
| 290 |
{end else begin |
bufline := ThreadStrings.Strings[i]; |
| 291 |
for i:=0 to DestStrings.Count - 1 do begin |
if Deleterlo = true then begin |
| 292 |
if FindNGwords(DestStrings.Strings[i]) = false then begin |
bufline := AnsiReplaceText( bufline,'&rlo;','' ); |
|
bufline := DestStrings.Strings[i]; |
|
|
for j := 0 to 2 do begin |
|
|
Delete(bufline,1,Ansipos('<>',bufline)+1); |
|
|
end; |
|
|
Delete(bufline,Ansipos('<>',bufline),Length(bufline)-Ansipos('<>',bufline)+1); |
|
|
if Cutoff(bufline) = false then begin |
|
|
FRetStrings.Append(FAbonString); |
|
|
end else begin |
|
|
bufline := DestStrings.Strings[i]; |
|
|
if Deleterlo = true then begin |
|
|
while AnsiPos('&rlo',bufline) <> 0 do begin |
|
|
Delete(bufline,AnsiPos('&rlo',bufline),4); |
|
|
end; |
|
|
end; |
|
|
if Replaceul = true then begin |
|
|
bufline := AnsiReplaceText( bufline,'<ul>','<br>' ); |
|
|
bufline := AnsiReplaceText( bufline,'</ul>','<br>' ); |
|
|
end; |
|
|
FRetStrings.Append(bufline); |
|
|
end; |
|
|
end else begin |
|
|
bufline := DestStrings.Strings[i]; |
|
|
if Deleterlo = true then begin |
|
|
while AnsiPos('&rlo',bufline) <> 0 do begin |
|
|
Delete(bufline,AnsiPos('&rlo',bufline),4); |
|
|
end; |
|
|
end; |
|
|
if Replaceul = true then begin |
|
|
bufline := AnsiReplaceText( bufline,'<ul>','<br>' ); |
|
|
bufline := AnsiReplaceText( bufline,'</ul>','<br>' ); |
|
|
end; |
|
|
FRetStrings.Append(bufline); |
|
| 293 |
end; |
end; |
| 294 |
|
if Replaceul = true then begin |
| 295 |
|
bufline := AnsiReplaceText( bufline,'<ul>','<br>' ); |
| 296 |
|
bufline := AnsiReplaceText( bufline,'</ul>','<br>' ); |
| 297 |
|
end; |
| 298 |
|
ThreadStrings.Strings[i] := bufline; |
| 299 |
end; |
end; |
| 300 |
|
end; |
| 301 |
end;} |
//Result := FRetStrings; |
|
Result := FRetStrings; |
|
| 302 |
|
|
| 303 |
end; |
end; |
| 304 |
function TAbon.Execute(DestStrings : TStringList; NGwords : TStringList) : TStringList; |
procedure TAbon.Execute(var ThreadStrings : TStringList; NGwords : TStringList); |
| 305 |
var |
var |
| 306 |
i : Integer; |
i : Integer; |
| 307 |
begin |
begin |
| 309 |
for i := 0 to NGwords.Count -1 do begin |
for i := 0 to NGwords.Count -1 do begin |
| 310 |
SetTokens(i , NGwords.Strings[i]); |
SetTokens(i , NGwords.Strings[i]); |
| 311 |
end; |
end; |
| 312 |
Result := Execute(DestStrings); |
Execute(ThreadStrings); |
| 313 |
|
|
| 314 |
end; |
end; |
| 315 |
function TAbon.Execute(DestStrings : TStringList; NGwords : TStrings) : TStringList; |
procedure TAbon.Execute(var ThreadStrings : TStringList; NGwords : TStrings); |
| 316 |
var |
var |
| 317 |
i : Integer; |
i : Integer; |
| 318 |
buf : TStringList; |
buf : TStringList; |
| 323 |
for i := 0 to buf.Count -1 do begin |
for i := 0 to buf.Count -1 do begin |
| 324 |
SetTokens(i , buf.Strings[i]); |
SetTokens(i , buf.Strings[i]); |
| 325 |
end; |
end; |
| 326 |
Result := Execute(DestStrings); |
Execute(ThreadStrings); |
| 327 |
buf.Free; |
buf.Free; |
| 328 |
end; |
end; |
| 329 |
|
|