![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GetFileTime для выполняемого exe
DevilDevil © (2007-08-16 14:15:00)проблемы в открытии файла:
H := FileOpen(pchar(paramstr(0)), fmOpenRead);
H всегда -1
Сергей М. (2007-08-16 16:23:00) [1]
> в стек я после всего узнанного не полезу
да уж).. пока с "селектором" не разберешься - неча тебе там "ловить")
А чтобы разобраться - эт целая "эпоха" в твоей программерской жизни минует.
Как там у Великого Негритянского Поэта - то ?
"О сколько нам открытий чудных .." (С)
Так вроде бы ?)
DevilDevil (2007-08-16 16:17:00) [2]> Ну мож тогда есть резон устроить для себя обзор преимуществ
> и недостатков тех или иных существующих менеджеров ?
:)
ну в стек я после всего узнанного не полезу :)
> DVM © (16.08.07 15:57) [10]
оба варианта равнозначны?
в моём варианте не вызывается FileTimeToDosDateTime
Сергей М. (2007-08-16 16:01:00) [3]
> DevilDevil © (16.08.07 15:54) [9]
> стек - для себя
Ну мож тогда есть резон устроить для себя обзор преимуществ и недостатков тех или иных существующих менеджеров ?
DVM (2007-08-16 15:57:00) [4]
> DevilDevil ©
Вариант без FileOpen:
function GetFileDateTime(FileName: string): TDateTime;
var
FindData: TWin32FindData;
FileHandle: THandle;
LocalFileTime: TFileTime;
DosFileTime: DWORD;
begin
Result := 0;
FileHandle := FindFirstFile(PChar(FileName), FindData);
if FileHandle <> INVALID_HANDLE_VALUE then
begin
if (FindData.dwFileAttributes and FILE_ACTION_ADDED) = 0 then
begin
FileTimeToLocalFileTime(FindData.ftCreationTime, LocalFileTime);
FileTimeToDosDateTime(LocalFileTime, LongRec(DosFileTime).Hi, LongRec(DosFileTime).Lo);
Result := FileDateToDateTime(DosFileTime);
end;
Windows.FindClose(FileHandle);
end;
end;
DevilDevil (2007-08-16 15:54:00) [5]> Сергей М. © (16.08.07 15:20) [8]
Гы :) никак!
стек - для себя, "файловая петрушка" - для работы. :)
Сергей М. (2007-08-16 15:20:00) [6]Мож и достаточно)
Но мне просто интересно - как вся эта файлотаймовая петрушка "вяжется" со стеком, селекторами и прочей лабудой ?)
DevilDevil (2007-08-16 15:02:00) [7]всем спасибо...
единственный вопрос, FileTimeToSystemTime(T, S) достаточно ?
DevilDevil (2007-08-16 14:46:00) [8]похоже, месяц измеряется 1..12
Сергей М. (2007-08-16 14:41:00) [9]http://www.swissdelphicenter.ch/torry/showcode.php?id=30
DevilDevil (2007-08-16 14:37:00) [10]мда...
const
MonthsConsts : array[0..11] of string = ('января', 'февраля', 'марта',
'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
DevilDevil (2007-08-16 14:35:00) [11]> Leonid Troyanovsky © (16.08.07 14:23) [2]
спасибо, помогло
> И причем здесь GetFileTime
:) а я предвидел, что гладко ничего не пойдёт :)
const
MonthsConsts : array[0..11] of string = ('ÿíâàðÿ', 'ôåâðàëÿ', 'ìàðòà',
'àïðåëÿ', 'ìàÿ', 'èþíÿ', 'èþëÿ', 'àâãóñòà', 'ñåíòÿáðÿ', 'îêòÿáðÿ', 'íîÿáðÿ', 'äåêàáðÿ');
procedure TForm1.FormCreate(Sender: TObject);
var
T, D : TFileTime;
S : TSystemTime;
Str : string;
H : integer;
begin
H := FileOpen(pchar(paramstr(0)), fmOpenRead or fmShareDenyNone);
GetFileTime(H, @T, nil, nil);
FileClose(H);
//FileTimeToLocalFileTime(T, D);
//FileTimeToSystemTime(D, S);
FileTimeToSystemTime(T, S);
Str := Format('%d %s %d', [S.wDay, MonthsConsts[S.wMonth], S.wYear ]);
Caption := Str;
end;
Leonid Troyanovsky (2007-08-16 14:23:00) [12]
> DevilDevil © (16.08.07 14:15)
> H := FileOpen(pchar(paramstr(0)), fmOpenRead
fmOpenRead or fmShareDenyNone
--
Regards, LVT.
Сергей М. (2007-08-16 14:21:00) [13]На Win32Check(FileOpen(..) >= 0) фантазии уже не хватило ?
И причем здесь GetFileTime, если ты получил отлуп еще ДО того как ?