Такая задачка:
Найти все текстовые файлы в папке и занести их имена построчно в 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;