![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: нет Всего: 2 |
Нужно определить, сколько секунд, минут или часов работала функция (в формате 00:00:00).
Вот мой алгоритм определения:
Функция обрабатывается, но при работе программы возникает ошибка... Помогите пожалуйста ![]() |
|||
|
||||
Rrader |
|
|||
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 18 Всего: 191 |
Потому что GetTickCount - A дает 0 из-за мгновенного выполнения подпрограммы. Тут можно просто проверку вставить...
|
|||
|
||||
MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: нет Всего: 2 |
Да нет, 6 секунд и больше.... Добавлено через 3 минуты и 52 секунды Я понял, что мне нужно: как конвертировать количество миллисекунд в формат часы:минуты:секунды (к примеру: 3600000 в 01:00:00 - 1 час). |
|||
|
||||
Alix |
|
||||||
![]() L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 8 Всего: 23 |
таким образом, ты в любом случае, теряешь в точности, переводя в tdatetime формат. Напиши что-то вроде:
Добавлено через 1 минуту и 1 секунду
опоздал я с ответом ) ну в общем идею ты в моем ответе, думаю, увидишь -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
||||||
|
|||||||
MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: нет Всего: 2 |
Мне достаточно округление до 1 секунды. Вообщем, вот что получилось:
где Statistics[A].WorkTime = время в миллисекундах. Вот только он показывает не 03:02:01, а 3:2:1 (т.е. нули впереди не ставит) :(. |
|||
|
||||
Alix |
|
|||
![]() L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 8 Всего: 23 |
а ты напиши там такой формат: '%.2d:%.2d:%.2d' -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: нет Всего: 2 |
||||
|
||||
Sinneren |
|
|||
![]() {YaGoo} ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 20.3.2009 Где: Уфа Репутация: нет Всего: 1 |
GetTickCount - не понимаю что это
и Statistics[A].WorkTime это тоже. ещё и не работает. в общем у меня
такой вот код стоит на таймере с дефолтным интервалом. однако выводит странное время.. после начала программы 8 часу 40 минут...когда как. вероятно это потому что я не знаю GetTickCount что это такое.что же мне написать нужно,чтобы время начинало отсчтёт от старта это процедуры,тобишь включения таймера. |
|||
|
||||
Virtuals |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 476 Регистрация: 27.11.2006 Репутация: 1 Всего: 11 |
чет вообще не понял зачем столько сложностей?. 99,9% современных процессоров потдерживают функцию
RDTSC (получить количество тактов с момента старта ЦПУ) вот код, интуитивно понятен, проверку на тип процессора не производил,..../за основу взят код из DRKB/ бросить на форму Button1: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; и далее. //точность будет зависеть, от того как точно опознаете скорость цпу. + данный способ, при приложении опр. фантазии, позволит даже измерить, время между событиями в разных программах ![]()
Добавлено @ 07:38 все далее в любом месте, по аналогии
и вывод результата
Это сообщение отредактировал(а) Virtuals - 29.9.2009, 08:04 |
||||||
|
|||||||
AntonN |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 3 Всего: 18 |
зачем эти хромированные костыли? http://forum.vingrad.ru/index.php?showtopi...t&p=1977444
|
|||
|
||||
Virtuals |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 476 Регистрация: 27.11.2006 Репутация: 1 Всего: 11 |
AntonN, QueryPerformanceFrequency, QueryPerformanceCounter
и есть обертка для
![]() а все остальное пример как пользовать. тоесть вода... и надеюсь никто не будет спорить что точней и быстрей отработает, код в асме или вызов Ф из длл. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |