Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.22;
Скачать: CL | DM;

Вниз

Добрый день. Как формат TFileTime перевести в нормальную дату.   Найти похожие ветки 

 
Oleon   (2002-04-10 15:52) [0]

Хочу отбирать самые свежие файлы из разных версий одной программы. например, по дате создания. Если использовать FindFirst и TSearchRec то там есть такой параметр, но в каком то странном формате TFileTime. Что это такое и как с этим работать?
Спасибо.


 
SergeyB ©   (2002-04-10 16:20) [1]

В windows.pas такое определение:

_FILETIME = record
dwLowDateTime: DWORD;
dwHighDateTime: DWORD;
end;
...
TFileTime = _FILETIME;


 
Anatoly Podgoretsky ©   (2002-04-10 16:33) [2]

Сделай поиск


 
kserg@ukr.net   (2002-04-10 16:43) [3]

2Oleon
Когда-то я с этим тоже "бадался" причём на похожей задаче-делал файл-сканер.
Кое чё подзабыл, поэтому просто выложу кусок кода, на котр. виден общ.алгоритм работы.
Хочу только добавить, что время файла, когда "вырвешь" у винды надо конвертить из локального в системное, иначе были проблемы...


var
fn: WIN32_FILE_ATTRIBUTE_DATA;
lpLocalFileTime: TFileTime;
lpSystemTime: TSystemTime;
DateCr,TimeCr,DateWr,TimeWr: TDateTime;


// читаем атрибуты файла через функцию Win-API
strPcopy(C,sFile);
GetFileAttributesEx(C,GetFileExInfoStandard,@fn);


// определяем дату/время создания файла
FileTimeToLocalFileTime(fn.ftCreationTime, lpLocalFileTime);
FileTimeToSystemTime( lpLocalFileTime, lpSystemTime);
DateCr:= EncodeDate(lpSystemTime.wYear,lpSystemTime.wMonth,lpSystemTime.wDay);
TimeCr:= EncodeTime(lpSystemTime.wHour,lpSystemTime.wMinute,lpSystemTime.wSecond,lpSystemTime.wMilliseconds);

// определяем дату/время последней модификации
FileTimeToLocalFileTime(fn.ftLastWriteTime, lpLocalFileTime);
FileTimeToSystemTime( lpLocalFileTime, lpSystemTime);
DateWr:= EncodeDate(lpSystemTime.wYear,lpSystemTime.wMonth,lpSystemTime.wDay);
TimeWr:= EncodeTime(lpSystemTime.wHour,lpSystemTime.wMinute,lpSystemTime.wSecond,lpSystemTime.wMilliseconds);


 
mio ©   (2002-04-10 17:02) [4]

> Если использовать FindFirst и TSearchRec то там есть такой
> параметр, но в каком то странном формате TFileTime.

Ну, не знаю... Давно не видел D3. НО: В D5 Help написано примерно следующее:
TSearchRec = record
Time: Integer;
. . . .
Time contains the time stamp of the file. This is a DOS date-and-time stamp. It can be converted to a TDateTime value using FileDateToDateTime.

Чего и Вам желаю.
Не исключено, что в D3 был введен тип type TFileTime = integer или что-то типа того. Если есть исходники - советую посмотреть.

To: SergeyB & KSerg
Вопрос-то был не про WinAPI, а про чисто дельфийские функции, синтаксис которых сохранился аж со времен TP...



Страницы: 1 вся ветка

Текущий архив: 2002.04.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-69832
mio
2002-04-10 17:03
2002.04.22
Форма как дочернее окно


1-69871
snoup
2002-04-08 20:45
2002.04.22
Как TPopup соединить с TToolBar?


4-70069
ATLANTIDO
2002-02-14 18:01
2002.04.22
Верхнее окно


7-70037
Traitor
2002-01-27 12:56
2002.04.22
Где Windows XP хранит пароли ? *.pwl там отсутствует.


1-69927
Dimaiv
2002-04-09 19:58
2002.04.22
Где ошибка вот в таком коде