Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Ограничение log-файла по количеству строк

Delphi , Файловая система , Файлы

Ограничение log-файла по количеству строк

Автор: VID
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Ограничение log-файла, по количеству строк

Функция добавляет в файл LogFileName строку Log.
Если файл LogFileName не существует, он будет создан.
В параметре StrLimit указывается ограничение на
количество строк в лог-файле. Функция возвращает
число строк в лог-файле (LogFileName)

Зависимости: sysutils, classes, system
Автор:       VID, vidsnap@mail.ru, ICQ:132234868, Махачкала
Copyright:   VID
Дата:        11 июня 2002 г.
***************************************************** }

function WriteLog(LogFileName, Log: string; StrLimit: Integer): Integer;
var
  F: TextFile;
  function CheckLogFile: Integer;
  var
    I, Diff: Integer;
    FStr: TstringList;
  begin
    FStr := TStringList.Create;
    FStr.LoadFromFile(LogFileName);
    Diff := 0;
    if FStr.Count > StrLimit then
    begin
      Diff := FStr.Count - StrLimit;
      AssignFile(F, LogFileName);
      Rewrite(F);
      for I := Diff to FStr.Count - 1 do
        WriteLn(F, FStr[i]);
      CloseFile(F);
    end;
    Result := FStr.Count - Diff;
    FStr.Free;
  end;
begin
  Result := 0;
  if StrLimit < 1 then
    Exit;
  try
    AssignFile(F, LogFileName);
    if FileExists(LogFileName) then
      Append(f)
    else
      Rewrite(F);
    WriteLn(F, Log);
    Closefile(f);
  except Exit;
  end;
  Result := CheckLogFile;
end;

Программная функция WriteLog в Delphi, которая пишет сообщение журнала в файл и ограничивает количество строк в файле.

Сигнатура функции

function WriteLog(LogFileName, Log: string; StrLimit: Integer): Integer;

Функция принимает три параметра:

  • LogFileName: имя файла журнала, в который будет написано сообщение.
  • Log: сообщение журнала, которое будет написано в файл.
  • StrLimit: максимальное количество строк, разрешенных в файле журнала.

Переменные и зависимости

var
  F: TextFile;
  function CheckLogFile: Integer;
  var
    I, Diff: Integer;
    FStr: TstringList;

Функция объявляет несколько переменных:

  • F: текстовый файл, который будет использован для чтения и записи файла журнала.
  • CheckLogFile: вложенная функция, которая проверяет, превышено ли количество строк в файле журнала, и если да, то обрезает файл, если необходимо.
  • I, Diff и FStr: переменные, используемые внутри функции CheckLogFile.

Список зависимостей:

  • sysutils
  • classes
  • system

Имплементация функции

begin
  Result := 0;
  if StrLimit < 1 then
    Exit;

  try
    AssignFile(F, LogFileName);
    if FileExists(LogFileName) then
      Append(F)
    else
      Rewrite(F);

    WriteLn(F, Log);

    CloseFile(F);
  except
    Exit;
  end;

  Result := CheckLogFile;
end;

Имплементация функции состоит из двух основных частей:

  1. Письмо сообщения журнала в файл: если файл существует, функция добавляет к нему; иначе, она создает новый файл и пишет в него.
  2. Обрезка файла журнала, если необходимо: функция CheckLogFile вызывается для проверки, превышено ли количество строк в файле журнала. Если да, то функция обрезает файл, переписывая его с только что добавленными строками.

Вложенная функция CheckLogFile

function CheckLogFile: Integer;
var
  I, Diff: Integer;
  FStr: TstringList;
begin
  FStr := TStringList.Create;
  FStr.LoadFromFile(LogFileName);
  Diff := 0;

  if FStr.Count > StrLimit then
  begin
    Diff := FStr.Count - StrLimit;
    AssignFile(F, LogFileName);
    Rewrite(F);
    for I := Diff to FStr.Count - 1 do
      WriteLn(F, FStr[I]);
    CloseFile(F);
  end;

  Result := FStr.Count - Diff;
  FStr.Free;
end;

Функция CheckLogFile читает файл журнала в TStringList, проверяет, превышено ли количество строк в файле журнала, и если да, то обрезает файл, переписывая его с только что добавленными строками. Затем функция возвращает количество строк в обрезанном файле журнала.

В целом, эта функция обеспечивает удобный способ записи сообщений журнала в файл, ограничивая количество строк в файле.

Ограничение log-файла по количеству строк - функция Delphi, добавляющая строку в файл LogFileName и ограничивающая количество строк в файле указанным параметром StrLimit.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Файлы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-24 20:00:21/0.0037338733673096/0