Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.09.2014, 13:56
ivankom ivankom вне форума
Прохожий
 
Регистрация: 04.02.2014
Сообщения: 21
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию Разбить файл логов

Нужно сделать так, чтобы файл логов не разростался.
Делаю так: если файл больше определенного размера, то переименовываю его и создаю новый.
Нагуглил пару порцедурок.

Код:
function FileSize(fileName : wideString) : Int64;
 var
   sr : TSearchRec;
 begin
   if FindFirst(fileName, faAnyFile, sr ) = 0 then
      result := Int64(sr.FindData.nFileSizeHigh) shl Int64(32) + Int64(sr.FindData.nFileSizeLow)
   else
      result := -1;
   FindClose(sr) ;
 end;
Код:
procedure AddToLog(s:string);
var
 fn:string;
 F:TextFile;
 name: string;
begin
   Fn:=ExtractFilePath(ParamStr(0))+'log.txt';
   assignFile(f,fn);
   if FileExists(fn) then
   begin
//   ShowMessage(IntToStr(FileSize(fn)));
   if FileSize(fn) > 100 then
    begin
      name := 'log'+DateTimeToStr(Now);
      name := StringReplace(name, '.', '-', [rfReplaceAll, rfIgnoreCase]);
      name := StringReplace(name, ':', '-', [rfReplaceAll, rfIgnoreCase]);
      name := name + '.txt';
      RenameFile(fn,ExtractFilePath(ParamStr(0)) + name);
    end
    else
      begin
        Append(f);
      end;
   end
    else Rewrite(f);
   Writeln(f, DateTimeToStr(Now)+s);
   Flush(f);
   CloseFile(f);
end;


Первая проблема, не работает if FileSize(fn) > 100, наверно из-за разных типов данных.
Вторая, вылетает ошибка I/O error 103 после строки кода:
RenameFile(fn,ExtractFilePath(ParamStr(0)) + name);
Файл при этом переименовывается, но не создается новый (log.txt).
Подскажите, как исправить? Или может у кого-нибудь есть по лучше способ избавиться от большого лога?
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:09.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025