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 ProcessCommand(ACommand, AParams: String);
procedure WriteContent(AContent: String; AFilters: TFilterList; procedure WriteContent(AContent: String; AFilters: TFilterList;
AGroupRanges: TGroupRanges); AGroupRanges: TGroupRanges);
procedure FilterLine(ALine: String);
public public
constructor Create(TheOwner: TComponent); override; constructor Create(TheOwner: TComponent); override;
destructor Destroy; override; destructor Destroy; override;
@ -58,8 +59,6 @@ procedure TLogFilterApplication.DoRun;
var var
commandFile: TextFile; commandFile: TextFile;
logFile: TextFile; logFile: TextFile;
groupRanges: TGroupRanges;
lineFilter: TLineFilter;
line: String; line: String;
begin begin
if HasOption('h', 'help') or not HasOption('c', 'commandfile') then if HasOption('h', 'help') or not HasOption('c', 'commandfile') then
@ -115,14 +114,7 @@ begin
while not EOF(logFile) do while not EOF(logFile) do
begin begin
Readln(logFile, line); Readln(logFile, line);
for lineFilter in FLineFilters do FilterLine(line);
begin
if lineFilter.Matches(line, groupRanges) then
begin
WriteContent(line, lineFilter.Filters, groupRanges);
Break;
end;
end;
end; end;
CloseFile(logFile); CloseFile(logFile);
@ -225,6 +217,21 @@ begin
highlights.Free; highlights.Free;
end; 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); constructor TLogFilterApplication.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);