Ftokens : array of array of string;
FAbonRes : array of TIndiviAbon;
FAbonString : String;
-// FCutoffNum : Integer; //\82±\82Ì\90\94\88È\8fã\98A\91±\82·\82é\93¯\82¶\89p\8e\9a\82ðNG\83\8f\81[\83h\82Æ\82·\82é
- FDeleterlo : Boolean; //&rlo;\82ð\8dí\82é\82© //\92Ç\89Á&lro;\82à\8dí\82é
+ FDeleterlo : Boolean; //&rlo;\82ð\8dí\82é\82© //\92Ç\89Á&lro;\82à\8dí\82é
FReplaceul :Boolean ; //<ul>\83^\83O\82ð<br>\83^\83O\82É\92u\8a·\82·\82é\82©
FReverse : Boolean ; //NG\83\8f\81[\83h\82Å\82Ì\82 \82Ú\81`\82ñ\82Ì\8c\8b\89Ê\82ð\94½\93]\82³\82¹\82é\82©
FAbonPopupRes : Boolean; //\83\8c\83X\83|\83b\83v\83A\83b\83v\82Ì\8e\9e\82É\82 \82Ú\81[\82ñ\82·\82é\82©
- FCreateNGwordFile : Boolean; //\8ew\92è\82³\82ê\82½path\82ÉNG\83\8f\81[\83htxt\82ª\96³\82©\82Á\82½\82Æ\82«\82É\8e©\93®\93I\82É\90¶\90¬\82·\82é\82©
- FNGwordFileIndex : Integer; //\8c»\8dÝ\93Ç\82Ý\8d\9e\82ñ\82Å\82éNG\83\8f\81[\83h\82ªlist\82Ì\89½\8ds\96Ú\82©
+ FNGwordFileIndex : Integer; //\8c»\8dÝ\93Ç\82Ý\8d\9e\82ñ\82Å\82éNG\83\8f\81[\83h\82ªlist\82Ì\89½\8ds\96Ú\82©
FNGwordname : String; //\8c»\8dÝ\93Ç\82Ý\8d\9e\82ñ\82Å\82éNG\83\8f\81[\83h\82Ì\95\\8e¦\96¼
FIndividualFileName : String; //\8cÂ\95Ê\82 \82Ú\81`\82ñ\82Ì\83t\83@\83C\83\8b\96¼
FReturnNGwordLineNum : Boolean; //NG\83\8f\81[\83h\82Ì\8ds\90\94\82ð\95Ô\82·\81B
property Deleterlo: Boolean read FDeleterlo write FDeleterlo default false;
property Replaceul: Boolean read FReplaceul write FReplaceul default false;
property Reverse: Boolean read FReverse write FReverse default false;
- property CreateNGwordFile: Boolean read FCreateNGwordFile write FCreateNGwordFile;
- property AbonString : String read FAbonString write FAbonString;
+ property AbonString : String read FAbonString write FAbonString;
property AbonPopupRes : Boolean read FAbonPopupRes write FAbonPopupRes default false;
property listpath : String read Getlistpath write Setlistpath;
property NGwordFileIndex : Integer read FNGwordFileIndex write FNGwordFileIndex default 0;
procedure LoadFromStringList( bufstl : TStringList );
function CheckAbonPopupRes(line : String) :Boolean;
function FindNGwords(const line : String; var NGwordsLineNum : Integer; var Invisible : Boolean) : Boolean;//1\83\89\83C\83\93\82¸\82Â\97p\81B
- function FindNGwordsEx(const line : String; var NGwordsLineNum : Integer; var Invisible : Boolean) : Boolean;//1\83\89\83C\83\93\82¸\82Â\97p\81B
//\82 \82Ú\81`\82ñ\8f\88\97\9d(NG\83\8f\81[\83h\82Å\82Ì\83t\83B\83\8b\83^\83\8a\83\93\83O)
procedure Execute(var ThreadStrings : TStringList); overload;
- procedure Execute(var ThreadStrings : TStringList; NGwords : TStringList); overload;
- procedure Execute(var ThreadStrings : TStringList; NGwords : TStrings); overload;
procedure Execute(var ResString : String; ResNumber : Integer); overload; //\8eå\82Éplugin\82©\82ç\82ÌDat To HTML \97p
- procedure ExecuteEx(var ThreadStrings : TStringList); overload;
- procedure ExecuteEx(var ThreadStrings : TStringList; NGwords : TStringList); overload;
- procedure ExecuteEx(var ThreadStrings : TStringList; NGwords : TStrings); overload;
- procedure ExecuteEx(var ResString : String; ResNumber : Integer); overload; //\8eå\82Éplugin\82©\82ç\82ÌDat To HTML \97p
//\8cÂ\95Ê\82 \82Ú\81`\82ñ\82µ\82å\82è
procedure IndividualAbon(var ThreadStrings : TStringList; SetResNumFile : String); overload;
procedure IndividualAbon(var ResString : String; SetResNumFile : String; ResNumber : Integer); overload;
procedure AddIndividualAbon( ResNum : Integer ; option : Integer; SetResNumFile : String);
- procedure DeleteIndividualAbon( ResNum : Integer); overload;
- procedure DeleteIndividualAbon( ResNum : Integer; SetResNumFile : String); overload;
-
- function GetAbonResCount() : Integer; overload;
- function GetAbonResCount(SetResNumFile : String) : Integer; overload;
-
- function GetAbonResString(Num : Integer) : String;
function CheckIndividualAbonList(ResNum : Integer) : Boolean;
procedure EditNGwords(); //NGword.txt\82ð\8aJ\82\81B
begin
// \8f\89\8aú\89»
FAbonString := ' <> <> <> <><>';
- FCreateNGwordFile := true;
SetLength(FAbonRes,1);
FAbonRes[0].Res := 0;
FAbonRes[0].option := -1;
if path = '' then begin
Result := false;
end else begin
+
bufstl := TStringList.Create;
try
- try
+ if not FileExists(path) then begin
+ Result := false;
+ try
+ bufstl.SaveToFile(path);
+ except
+ end;
+ end else begin
bufstl.LoadFromFile(path);
LoadFromStringList( bufstl );
Result := true;
- except
- if CreateNGwordFile = true then begin
- bufstl.SaveToFile(path);
- end;
- Result := false;
end;
finally
bufstl.Free;
end;
Result := hit;
end;
-//NG\83\8f\81[\83h\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82½\82çtrue\82ð\95Ô\82µ\81A\82»\82ÌNG\83\8f\81[\83h\82Ì\8ds\90\94\82ðNGwordsLineNum\82É\93ü\82ê\82Ä\95Ô\82·\81B
-//\82à\82µ\82à\93§\96¾\82 \82Ú\81`\82ñ\82É\82·\82é\82È\82çInbisible\82ðtrue\82É\82µ\82Ä\95Ô\82·
-//\94¼\8ap\91S\8ap\96³\8e\8b
-function TAbon.FindNGwordsEx(const line : String; var NGwordsLineNum : Integer; var Invisible : Boolean) : Boolean;//1\83\89\83C\83\93\82¸\82Â\97p\81B
-var
- lines : Integer;
- cells : Integer;
- hit : Boolean;
- bufline : String;
- start : Integer;
-begin
- hit := false;
- if AnsiPos(FAbonString,line) <> 1 then begin
- for lines := 0 to High(Ftokens) do begin
- hit := true;
- bufline := line;
- if Ftokens[lines][0] <> '' then begin
- Invisible := false;
- start := 0;
- end else begin
- Invisible := true;
- start := 1;
- end;
-
- for cells := start to High(Ftokens[lines]) do begin
- if AnsiPos(Ftokens[lines][cells],bufline) = 0 then begin
- hit := false;
- break;
- end else begin
- Delete(bufline, AnsiPos(Ftokens[lines][cells],bufline),Length(Ftokens[lines][cells]));
- end;
- end;
- if hit = true then begin
- NGwordsLineNum := lines + 1;
- break;
- end;
- end;
- end;
- Result := hit;
-end;
//\96\96\94ö\82Ì\83u\81[\83\8b\92l\82Ítrue\82¾\82Æ\81ANG\83\8f\81[\83h\82ð\8aÜ\82Þ\82à\82Ì\82¾\82¯\82ð\95Ô\82·\81B
procedure TAbon.Execute(var ThreadStrings : TStringList);
var
end;
end;
-procedure TAbon.Execute(var ThreadStrings : TStringList; NGwords : TStringList);
-var
- i : Integer;
-begin
- SetLength(Ftokens,NGwords.Count);
- for i := 0 to NGwords.Count -1 do begin
- SetTokens(i , NGwords.Strings[i]);
- end;
- Execute(ThreadStrings);
-
-end;
-procedure TAbon.Execute(var ThreadStrings : TStringList; NGwords : TStrings);
-var
- i : Integer;
- buf : TStringList;
-begin
- buf := TStringList.Create;
- buf.AddStrings(NGwords);
- SetLength(Ftokens,buf.Count);
- for i := 0 to buf.Count -1 do begin
- SetTokens(i , buf.Strings[i]);
- end;
- Execute(ThreadStrings);
- buf.Free;
-end;
-
-//\96\96\94ö\82Ì\83u\81[\83\8b\92l\82Ítrue\82¾\82Æ\81ANG\83\8f\81[\83h\82ð\8aÜ\82Þ\82à\82Ì\82¾\82¯\82ð\95Ô\82·\81B
-procedure TAbon.ExecuteEx(var ThreadStrings : TStringList);
-var
- i : Integer;
- NGwordsLine : Integer;
- bufline : String;
- invisi : Boolean;
-begin
- for i:=0 to ThreadStrings.Count - 1 do begin
- NGwordsLine := 0;
- if FindNGwordsEx(ThreadStrings.Strings[i], NGwordsLine ,invisi) <> Reverse then begin
- if invisi = true then begin
- ThreadStrings.Strings[i] := '';
- end else begin
- if not ReturnNGwordLineNum and not SetNGResAnchor then begin
- ThreadStrings.Strings[i] := FAbonString;
- end else if not ReturnNGwordLineNum then begin
- ThreadStrings.Strings[i] := Format(' <> <> <>>%d<><>',[(i+1)]);
- end else if not SetNGResAnchor then begin
- ThreadStrings.Strings[i] := Format(' <> <> <><B> %d \8ds\96Ú\82ÌNG\83\8f\81[\83h\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82Ü\82·\81B</B><><>',[NGwordsLine]);
- end else begin
- ThreadStrings.Strings[i] := Format(' <> <> <><B> %d \8ds\96Ú\82ÌNG\83\8f\81[\83h\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82Ü\82·\81B</B>>%d <><>',[NGwordsLine,(i+1)]);
- end;
- end;
- end else begin
- bufline := ThreadStrings.Strings[i];
- if Deleterlo = true then begin
- bufline := CustomStringReplace(bufline,'&rlo;','');
- bufline := CustomStringReplace(bufline,'&lro;','');
- end;
- if Replaceul = true then begin
- bufline := CustomStringReplace( bufline,'<ul>','<br>' );
- bufline := CustomStringReplace( bufline,'</ul>','<br>' );
- end;
- if DeleteSyria = true then
- bufline := TreatSyria(bufline);
- ThreadStrings.Strings[i] := bufline;
- end;
- end;
-end;
-procedure TAbon.ExecuteEx(var ResString : String; ResNumber : Integer);
-var
- NGwordsLine : Integer;
- bufline : String;
- invisi : Boolean;
-begin
- NGwordsLine := 0;
- if FindNGwordsEx(ResString, NGwordsLine ,invisi) <> Reverse then begin
- if invisi = true then begin
- ResString := '';
- end else begin
- if not ReturnNGwordLineNum and not SetNGResAnchor then begin
- ResString := FAbonString;
- end else if not ReturnNGwordLineNum then begin
- ResString := Format(' <> <> <>>%d<><>',[(ResNumber)]);
- end else if not SetNGResAnchor then begin
- ResString := Format(' <> <> <><B> %d \8ds\96Ú\82ÌNG\83\8f\81[\83h\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82Ü\82·\81B</B><><>',[NGwordsLine]);
- end else begin
- ResString := Format(' <> <> <><B> %d \8ds\96Ú\82ÌNG\83\8f\81[\83h\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82Ü\82·\81B</B>>%d <><>',[NGwordsLine,(ResNumber)]);
- end;
- end;
- end else begin
- bufline := ResString;
- if Deleterlo = true then begin
- bufline := CustomStringReplace( bufline,'&rlo;','' );
- bufline := CustomStringReplace( bufline,'&lro;','' );
- end;
- if Replaceul = true then begin
- bufline := CustomStringReplace( bufline,'<ul>','<br>' );
- bufline := CustomStringReplace( bufline,'</ul>','<br>' );
- end;
- if DeleteSyria = true then
- bufline := TreatSyria(bufline);
- ResString := bufline;
- end;
-end;
-
-procedure TAbon.ExecuteEx(var ThreadStrings : TStringList; NGwords : TStringList);
-var
- i : Integer;
-begin
- SetLength(Ftokens,NGwords.Count);
- for i := 0 to NGwords.Count -1 do begin
- SetTokens(i , NGwords.Strings[i]);
- end;
- ExecuteEx(ThreadStrings);
-end;
-procedure TAbon.ExecuteEx(var ThreadStrings : TStringList; NGwords : TStrings);
-var
- i : Integer;
- buf : TStringList;
-begin
- buf := TStringList.Create;
- buf.AddStrings(NGwords);
- SetLength(Ftokens,buf.Count);
- for i := 0 to buf.Count -1 do begin
- SetTokens(i , buf.Strings[i]);
- end;
- ExecuteEx(ThreadStrings);
- buf.Free;
-end;
//****************************************************************************//
//\8c»\8dÝ\83Z\83b\83g\82³\82ê\82Ä\82¢\82éNGword.txt\82ð\8aJ\82
IndividualFile.Free;
end;
end;
-//\8cÂ\95Ê\82 \82Ú\81`\82ñ\83t\83@\83C\83\8b\82©\82ç\8dí\8f\9c
-procedure TAbon.DeleteIndividualAbon( ResNum : Integer);
-var
- IndividualFile : TStringList;
- linebuf : String;
- i : Integer;
-begin
- IndividualFile := TStringList.Create;
- if FAbonRes[0].Res <> 0 then begin
- for i := 0 to High(FAbonRes) do begin
- if FAbonRes[i].Res <> ResNum then begin
- linebuf := IntToStr(FAbonRes[i].Res) + '-' + IntToStr(FabonRes[i].option);
- IndividualFile.Append(linebuf);
- end;
- end;
- end;
- if IndividualFile.Count <> 0 then begin
- try
- IndividualFile.SaveToFile(FIndividualFileName);
- finally
- IndividualFile.Free;
- end;
- end else begin
- if FileExists(FIndividualFileName) = true then begin
- DeleteFile(FIndividualFileName);
- end;
- end;
-end;
-//\8cÂ\95Ê\82 \82Ú\81`\82ñ\82Ì\83\8a\83X\83g\82Ì\8cÂ\90\94\82ð\95Ô\82·
-function TAbon.GetAbonResCount() : Integer;
-var
- i : Integer;
-begin
- if FAbonRes[0].Res = 0 then begin
- Result := 0
- end else begin
- i := High(FAbonRes);
- Result := i+1;
- end;
-end;
-//\8cÂ\95Ê\82 \82Ú\81`\82ñ\82Ì\83\8a\83X\83g\82Ì\82\8e\8ds\96Ú\82Ì\83\8c\83X\82ð\95¶\8e\9a\97ñ\82Å\95Ô\82·
-function TAbon.GetAbonResString(Num : Integer) : String;
-begin
- if (Num <= High(FAbonRes)) and (Num >= 0) then begin
- Result := IntToStr(FAbonRes[Num].Res);
- end else begin
- Result := '';
- end;
-end;
-function TAbon.GetAbonResCount(SetResNumFile : String) : Integer;
-var
- bufStringList : TStringList;
-begin
- Result := 0;
- if FileExists(SetResNumFile) then begin
- bufStringList := TStringList.Create;
- try
- try
- bufStringList.LoadFromFile(SetResNumFile);
- Result := bufStringList.Count;
- except
- end;
- finally
- bufStringList.Free;
- end;
- end;
-end;
-procedure TAbon.DeleteIndividualAbon( ResNum : Integer; SetResNumFile : String);
-var
- i: Integer;
- bufStringList : TStringList;
-begin
- if FileExists(SetResNumFile) then begin
- bufStringList := TStringList.Create;
- try
- try
- bufStringList.LoadFromFile(SetResNumFile);
- i := bufStringList.IndexOf(IntToStr(ResNum)+'-');
- if i > 0 then
- bufStringList.Delete(i);
- except
- end;
- finally
- bufStringList.Free;
- end;
- end;
-end;
//\83|\83b\83v\83A\83b\83v\82Ì\94»\92è\97p
function TAbon.CheckIndividualAbonList(ResNum : Integer) : Boolean;