Extracted line filtering
This commit is contained in:
parent
3e3ba96fb9
commit
c62d4fae0c
27
UApp.pas
27
UApp.pas
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue