Changeset 331 for branches


Ignore:
Timestamp:
Aug 30, 2008, 9:34:39 PM (17 years ago)
Author:
RBRi
Message:

log output added
source formating

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.19_branch/NewView/TextSearchQuery.pas

    r116 r331  
    2929    CombineMethod: TSearchTermCombineMethod;
    3030
    31     constructor Create( const TheText: string;
    32                         const TheCombineMethod: TSearchTermCombineMethod );
     31    constructor Create( const aText: string;
     32                        const aCombineMethod: TSearchTermCombineMethod );
    3333    destructor Destroy; override;
     34
     35    function AsLogText: String;
    3436  end;
    3537
     
    4042    function GetTermCount: longint;
    4143  public
    42     constructor Create( const SearchString: string );
     44    constructor Create(const aSearchString: String);
    4345    destructor Destroy; override;
    4446
    4547    property Term[ Index: longint ]: TSearchTerm read GetTerm;
    4648    property TermCount: longint read GetTermCount;
     49
     50    procedure Log;
    4751  end;
    4852
     
    6367                           const Apply: boolean );
    6468begin
    65 
    6669  Language.Prefix := 'SearchQuery.';
    6770  Language.LL( Apply, QueryErrorMissingWord1, 'QueryErrorMissingWord1', 'No search word given after ' );
     
    6972end;
    7073
    71 constructor TTextSearchQuery.Create( const SearchString: string );
    72 var
    73   TermText: string;
    74   CombineMethod: TSearchTermCombineMethod;
     74
     75constructor TTextSearchQuery.Create(const aSearchString: string);
     76var
     77  tmpTermText: string;
     78  tmpCombineMethod: TSearchTermCombineMethod;
    7579  Term: TSearchTerm;
    7680  tmpTerms : TStringList;
     
    8084  try
    8185    tmpTerms := TStringList.Create;
    82     StrExtractStringsQuoted(tmpTerms, SearchString);
     86    StrExtractStringsQuoted(tmpTerms, aSearchString);
    8387
    8488    for i := 0 to tmpTerms.count-1 do
    8589    begin
    86       TermText := tmpTerms[i];
     90      tmpTermText := tmpTerms[i];
    8791
    8892      // Check for modifiers:
    8993      //  + word must be matched
    9094      //  - word must not be matched
    91       case TermText[ 1 ] of
     95      case tmpTermText[ 1 ] of
    9296       '+':
    93          CombineMethod := cmRequired;
     97         tmpCombineMethod := cmRequired;
    9498       '-':
    95          CombineMethod := cmExcluded;
     99         tmpCombineMethod := cmExcluded;
    96100       else
    97          CombineMethod := cmOptional;
     101         tmpCombineMethod := cmOptional;
    98102      end;
    99103
    100       if CombineMethod <> cmOptional then
     104      if tmpCombineMethod <> cmOptional then
    101105      begin
    102106        // delete + or -
    103         if Length( TermText ) = 1 then
     107        if Length( tmpTermText ) = 1 then
    104108          if (i < tmpTerms.count-1) then
    105109            raise ESearchSyntaxError.Create( QueryErrorMissingWord1
    106                                              + StrInDoubleQuotes(TermText)
     110                                             + StrInDoubleQuotes(tmpTermText)
    107111                                             + QueryErrorMissingWord2
    108112                                             + StrInDoubleQuotes(tmpTerms[i+1]) )
    109113          else
    110114            raise ESearchSyntaxError.Create( QueryErrorMissingWord1
    111                                              + StrInDoubleQuotes(TermText));
    112         Delete( TermText, 1, 1 );
     115                                             + StrInDoubleQuotes(tmpTermText));
     116        Delete( tmpTermText, 1, 1 );
    113117      end;
    114118
    115       Term := TSearchTerm.Create( TermText,
    116                                   CombineMethod );
     119      Term := TSearchTerm.Create( tmpTermText, tmpCombineMethod );
    117120      Terms.Add( Term );
    118121    end;
     
    125128end;
    126129
     130
    127131destructor TTextSearchQuery.Destroy;
    128132begin
     
    131135end;
    132136
     137
     138function TSearchTerm.AsLogText: String;
     139var
     140  i : integer;
     141begin
     142  result := 'TSearchTerm: ''' + text + '''  (' + IntToStr(Parts.Count) + ' parts; ';
     143
     144  case CombineMethod of
     145  cmRequired :
     146    result := result + 'cmRequired';
     147  cmExcluded :
     148    result := result + 'cmExcluded';
     149  cmOptional :
     150    result := result + 'cmOptional';
     151  end;
     152
     153  result := result + ')';
     154end;
     155
     156
     157
    133158function TTextSearchQuery.GetTerm( index: longint ): TSearchTerm;
    134159begin
     
    136161end;
    137162
     163
    138164function TTextSearchQuery.GetTermCount: longint;
    139165begin
     
    141167end;
    142168
    143 constructor TSearchTerm.Create( const TheText: string;
    144                                 const TheCombineMethod: TSearchTermCombineMethod );
     169
     170constructor TSearchTerm.Create( const aText: string;
     171                                const aCombineMethod: TSearchTermCombineMethod );
    145172var
    146173  TermParseIndex: longint;
     
    150177  Parts := TStringList.Create;
    151178
    152   Text := TheText;
    153   CombineMethod := TheCombineMethod;
     179  Text := aText;
     180  CombineMethod := aCombineMethod;
    154181
    155182  // Break out each part of the term as IPF does:
     
    204231end;
    205232
     233
     234procedure TTextSearchQuery.Log;
     235var
     236  i : longint;
     237begin
     238  if IsLogAspectsEnabled(LogSearch) then
     239  begin
     240    LogEvent(LogSearch, ' TTextSearchQuery:');
     241
     242    for i := 0 to TermCount - 1 do
     243    begin
     244      LogEvent(LogSearch, '  Term ' + IntToStr(0) + ' [' + Term[i].AsLogText + ']');
     245    end;
     246  end;
     247end;
     248
     249
     250
    206251Initialization
    207252   RegisterProcForLanguages( OnLanguageEvent );
Note: See TracChangeset for help on using the changeset viewer.