Extracted line filtering

This commit is contained in:
Andreas Schneider 2015-09-25 11:33:20 +02:00
parent 3e3ba96fb9
commit c62d4fae0c
1 changed files with 17 additions and 10 deletions

View File

@ -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);