diff --git a/UApp.pas b/UApp.pas index acaeca7..460a334 100644 --- a/UApp.pas +++ b/UApp.pas @@ -44,6 +44,7 @@ type procedure ProcessCommand(ACommand, AParams: String); procedure WriteContent(AContent: String; AFilters: TFilterList; AGroupRanges: TGroupRanges); + procedure FilterLine(ALine: String); public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; @@ -58,8 +59,6 @@ procedure TLogFilterApplication.DoRun; var commandFile: TextFile; logFile: TextFile; - groupRanges: TGroupRanges; - lineFilter: TLineFilter; line: String; begin if HasOption('h', 'help') or not HasOption('c', 'commandfile') then @@ -115,14 +114,7 @@ begin while not EOF(logFile) do begin Readln(logFile, line); - for lineFilter in FLineFilters do - begin - if lineFilter.Matches(line, groupRanges) then - begin - WriteContent(line, lineFilter.Filters, groupRanges); - Break; - end; - end; + FilterLine(line); end; CloseFile(logFile); @@ -225,6 +217,21 @@ begin highlights.Free; end; +procedure TLogFilterApplication.FilterLine(ALine: String); +var + lineFilter: TLineFilter; + groupRanges: TGroupRanges; +begin + for lineFilter in FLineFilters do + begin + if lineFilter.Matches(ALine, groupRanges) then + begin + WriteContent(ALine, lineFilter.Filters, groupRanges); + Break; + end; + end; +end; + constructor TLogFilterApplication.Create(TheOwner: TComponent); begin inherited Create(TheOwner);