Главная страница
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.019 c
3-69719
Nickolaus
2002-03-29 22:41
2002.04.22
Как


7-70039
Devid
2002-01-27 15:47
2002.04.22
Как из дельфи позвонить на другой комп


6-69963
Mustang
2002-02-07 00:09
2002.04.22
NMSMTP глючит?


6-69967
fidget
2002-02-08 17:48
2002.04.22
TWebBrowser и Ctrl+C/Ctrl+V


1-69935
Shreck
2002-04-09 21:27
2002.04.22
Как проверить существует ли в listbox1.items строка из edit1.text