|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Функция выдения самого свежего файла из папки
Такая задачка:
Найти все текстовые файлы в папке и занести их имена построчно в StringList, а так же попутно найти самый свежий(по дате создания) файл в этой папке и залить его название в ключ реестра У меня вышло нечто вроде такого: Код:
... function GetFreshFile(FileNames: TStringList): String; {Из этой функции надо сотворить такую, чтобы брала построчно из TStringList имена файлов, сравнивала какой файл самый свежий по дате создания и выдавала его имя как результат} try for i=0 to FileNames.Count-1 do begin FileAge(FileNames.Strings[i]) //Получаем дату создания каждого файла ... //Как дальше сравнивать даты и выделить из них самую свежую? finally FileNames.Free //Уничтожаем TStringList end; end; procedure TForm.ButtonClick(Sender: TObject); var Files : TStringList; reg : TRegistry; begin Files := TStringList.Create; try If FindFirst('C:\Proga\*.txt', faAnyFile, SearchRec)=0 then //Ищем текстовые файлы в папке "C:\Proga" repeat Files.Add(SearchRec.Name); //Добавляем в StringList имя каждого найденного файла как новую строку until FindNext(SearchRec) <> 0; end; reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; reg.OpenKey('Software\Proga',true); reg.WriteString('LastF', GetFreshFile(Files)); //Сливаем имя последнего файла в ключ реестра HKEY_LOCAL_MACHINE\Software\Proga.LastF finally reg.Free; //Уничтожаем TRegistry end; FindClose(SearchRec); //Уничтожаем поиск end; |