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.6 by yoffy, Wed Aug 13 19:37:48 2003 UTC revision 1.7 by h677, Fri Aug 15 06:42:43 2003 UTC
# Line 12  type Line 12  type
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>タグに置換するか
# Line 44  type Line 43  type
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ファイルを直にいじる
# Line 67  constructor TAbon.Create; Line 66  constructor TAbon.Create;
66  begin  begin
67      // 初期化      // 初期化
68      FAbonString := '&nbsp;<>&nbsp;<>&nbsp;<>&nbsp;&nbsp;<><>';      FAbonString := '&nbsp;<>&nbsp;<>&nbsp;<>&nbsp;&nbsp;<><>';
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    
# Line 257  begin Line 256  begin
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;
# Line 297  begin Line 284  begin
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
# Line 350  begin Line 309  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;
# Line 364  begin Line 323  begin
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    

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

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