program FindLogByDate;
{$mode objfpc}
uses
Classes;
procedure PrintLogByDate(const Logs, TargetDate: string);
var
List: TStringList;
I: Integer;
begin
List := TStringList.Create;
try
List.Text := Logs; // automatically splits on line breaks
for I := 0 to List.Count - 1 do
begin
if Pos(TargetDate, List[I]) > 0 then
begin
WriteLn(List[I]);
Exit; // stop after first match
end;
end;
WriteLn('Date not found.');
finally
List.Free;
end;
end;
var
Logs: AnsiString;
begin
Logs :=
'01/12/2023 - Log entry one.' + LineEnding +
'17/03/2021 - Log entry two.' + LineEnding +
'29/07/2019 - Log entry three.' + LineEnding +
'05/11/2024 - Log entry four.' + LineEnding +
'22/08/2020 - Log entry five.' + LineEnding +
'14/02/2018 - Log entry six.' + LineEnding +
'30/09/2022 - Log entry seven.' + LineEnding +
'11/06/2017 - Log entry eight.' + LineEnding +
'03/04/2025 - Log entry nine.' + LineEnding +
'26/01/2016 - Log entry ten.' + LineEnding;
PrintLogByDate(Logs, '05/11/2024');
end.
(*
run:
05/11/2024 - Log entry four.
*)