Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2022, 01:18   #1
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 627
По умолчанию Определить возраст файла

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

Код:
   d:=FileAge({имя файла});
   If StrToInt( FormatDateTime('yyyy', Now-FileDateToDateTime(d)))>1900 then begin {действие} end
Что-то мне подсказывает, что этот код несколько кривоват. Есть ли более оптимальные методы?
Kronos913 вне форума Ответить с цитированием
Старый 12.02.2022, 08:19   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
uses dateutils;

n:=FileAge(...);
d:=FileDateToDate(n);
y:=YearOf(date);
dd:=YearsBetween(now, d);
P.S. ЕСЛИ список файлов получается посредством FileSearch то там УЖЕ есть дата файла (FileAge).
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 12.02.2022 в 09:50.
evg_m вне форума Ответить с цитированием
Старый 12.02.2022, 15:00   #3
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 627
По умолчанию

Файлы у меня так находятся. И записываются в TStringList
Код:
procedure DirSearch(Dir: string; const Mask : string; SL: TStrings; const Under: boolean);
var
   SearchRec: TSearchRec;

begin
   Dir := IncludeTrailingBackslash(Dir);
   if FindFirst(Dir + Mask, faAnyFile, SearchRec) = 0 then


     repeat
       Application.ProcessMessages;
       if (SearchRec.Attr and faDirectory)<>0 then begin

         if Under and (SearchRec.name<>'.') and (SearchRec.name<>'..') then
                 DirSearch(Dir + SearchRec.name, mask, sl, true)
       end
       else
          If not(SearchRec.Name='.') and not(SearchRec.Name='..') then
           Sl.Add(Dir + SearchRec.Name);

     until FindNext(SearchRec)<>0;
   FindClose(SearchRec);
end;
Kronos913 вне форума Ответить с цитированием
Старый 12.02.2022, 15:28   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
FileSearch то там УЖЕ есть дата файла (FileAge).
http://www.delphibasics.ru/TSearchRec.php
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить возраст в екселе? el1 Помощь студентам 2 12.12.2016 15:56
Pascal.Возраст матери и дочери вводится с клавиатуры.Определить через сколько лет мать будет старше дочери втрое? макс789 Помощь студентам 6 29.05.2016 20:19
Определить размер файла в инете -Jack- Общие вопросы Delphi 4 23.09.2013 15:21
Определить возраст самого юного студента rector2 Паскаль, Turbo Pascal, PascalABC.NET 12 23.10.2012 21:53
Определить возраст числа SolexVK Microsoft Office Excel 13 06.05.2009 16:46