| 
| 
 | Вопрос # 4 624/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Возможно ли реализовать следующую функцию, если да, то как?
 Чтоб после запуска программы или скрипта, программа оставляла в папке только 3 самых свежих файла?
 
|  |   Вопрос задал: Sundrey (статус: Посетитель)Вопрос отправлен: 30 сентября 2010, 20:58
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ Да нет проблем! Вот алгоритм, написанный на коленке за 5 минут.Создаёшь массив из 3х элементов:
 
 type
  TRec = record
           FileName: string; // имя файла
           Time: Integer; // время файла
         end;
var 
  Files: array[0..2] of TRec; // массив (перед использованием обнулить)Ищешь в папке файлы через FindFirst(), FindNext(), FindClose(). Если время (TSearchRec.Time) очередного найденного файла больше, чем время любого из трёх элементов массива - заменить содержимое этого элемента на имя (TSearchRec.Name) и время найденного файла. Файл, который был в массиве заменён, удаляешь (если поле Files[Index].FileName <> '').Если время очередного найденного файла не больше, чем времена всех трёх записей массива - удаляешь этот файл сразу.
 Короче, как-то так.
 
 АХТУНГ! Алгоритм придумал только сейчас. Работоспособность не проверял, могут быть ошибки.
 
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 30 сентября 2010, 21:32
 
 |  
 Мини-форум вопросаВсего сообщений: 0. 1 октября 2010, 11:46: Вопрос перемещён из тематического раздела Разные вопросы в раздел Delphi » Работа с файловой системой модератором Ерёмин А.А. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |