Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получить от компилятора текущую дату в констатнту, как?


sanx ©   (2009-09-02 13:11:00) 

Нужно для вывода инфы о дате компиляции. Хочу автоматизировать это. Сейчас пишу вручную :( Если ли директивы компилятора, которые смогут такое? Или может другой какой способ?


Rouse_   (2009-09-03 09:30:00) [1]


> вывело 19.06.1992, в чем может быть ошибка?

Хм, ну ошибка может быть только в том что по всей видимости тогда D2006 не прописывает время билда. на 2007-ой все нормально выводится, правда в формате GMT +0 (т.е. нужно переводить еще на текущее время)


sanx   (2009-09-02 18:04:00) [2]

Rouse_ сделал так DateToStr(GetPEDate(ParamStr(0))), вывело 19.06.1992, в чем может быть ошибка? Использую D2006, WinXP SP3, русская локаль :)

Сергей М., спасибо за ссылку, очень интересная тема.


Rouse_   (2009-09-02 14:50:00) [3]

Ну можно снять данные с уже сбилженного файла:

function GetPEDate(FileName: string): TDateTime;
var
 F: TMemoryStream;
 ImageDosHeader: TImageDosHeader;
 Signature: DWORD;
 ImageFileHeader: TImageFileHeader;
begin
 Result := 0;
 F := TMemoryStream.Create;
 try
   F.LoadFromFile(FileName);
   F.Position := 0;
   F.Read(ImageDosHeader, SizeOf(TImageDosHeader));
   if ImageDosHeader.e_magic = IMAGE_DOS_SIGNATURE then
   begin
     F.Position := ImageDosHeader._lfanew;
     F.Read(Signature, SizeOf(DWORD));
     if Signature = IMAGE_NT_SIGNATURE then
     begin
       F.Read(ImageFileHeader, SizeOf(TImageFileHeader));
       Result := EncodeDate(1970, 1, 1) +
         ImageFileHeader.TimeDateStamp / SecsPerDay;
     end;
   end;
 finally
   F.Free;
 end;
end;


Сергей М.   (2009-09-02 14:26:00) [4]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=899

см. AfterCompile


Наверх

Титульная страница Поиск, карта сайта Написать письмо