Ведение log файловDelphi , Файловая система , ФайлыВедение log файлов
Автор: Separator { **** UBPFD *********** by delphibase.endimus.com **** >> Ведение log файлов С помощью этих процедур можно вести log. procedure AddLog(LogString: String; LogFileName: string); - добавляет одну строку к log файлу procedure GetLog(Count: integer; Strings: TStrings; LogFileName: string); - возвращает последние Count записей Зависимости: Classes, SysUtils Автор: Separator, vilgelm@mail.kz, Алматы Copyright: Вильгельм Сергей Дата: 8 января 2003 г. ***************************************************** } procedure AddLog(LogString: string; LogFileName: string); var F: TFileStream; PStr: PChar; LengthLogString: integer; begin LengthLogString := Length(LogString) + 2; LogString := LogString + #13#10; PStr := StrAlloc(LengthLogString + 1); StrPCopy(PStr, LogString); if FileExists(LogFileName) then F := TFileStream.Create(LogFileName, fmOpenWrite) else F := TFileStream.Create(LogFileName, fmCreate); F.Position := F.Size; F.Write(PStr^, LengthLogString); StrDispose(PStr); F.Free; end; procedure GetLog(Count: integer; Strings: TStrings; LogFileName: string); var F: TFileStream; PStr: PChar; St: string; i, LenBlock, LenFirstString, LenTemp: integer; TempStrings: TStringList; begin if FileExists(LogFileName) then begin LenBlock := 4000; TempStrings := TStringList.Create; F := TFileStream.Create(LogFileName, fmOpenRead); F.Position := F.Size; LenFirstString := 0; PStr := StrAlloc(LenBlock); repeat if F.Position - LenBlock < 0 then begin LenBlock := F.Position; StrDispose(PStr); PStr := StrAlloc(LenBlock); end; F.Position := F.Position - LenBlock; F.Read(PStr^, LenBlock); St := PStr; SetLength(St, LenBlock); TempStrings.Text := St; F.Position := F.Position - LenBlock; if F.Position <> 0 then begin LenFirstString := Length(TempStrings.Strings[0]); TempStrings.Delete(0) end else LenFirstString := 0; F.Position := F.Position + LenFirstString; for i := TempStrings.Count - 1 downto 0 do begin Strings.Add(TempStrings.Strings[i]); if Strings.Count = Count then begin F.Free; TempStrings.Free; StrDispose(PStr); exit end end; until F.Position = 0; StrDispose(PStr); F.Free; TempStrings.Free end end; Пример использования: procedure TForm1.Button1Click(Sender: TObject); begin AddLog(Edit1.Text); end; procedure TForm1.Button2Click(Sender: TObject); begin ListBox1.Items.Clear; GetLog(50, ListBox1.Items); end; Переведенный текст: Библиотека Delphi для журналирования событий в файле включает два процедура: AddLog
GetLog
Пример использования Приведенный пример демонстрирует, как использовать эти процедуры в Delphi-форме. Событийный обработчик В статье описано ведение журналов (log файлов) в Delphi с помощью процедур AddLog и GetLog, которые позволяют добавлять строки в лог-файл и извлекать последние записи. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |