![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 07.02.2008
Сообщений: 150
|
![]()
Есть запись:
20 2E D8 82 2D CE 47 E3 40 В ней полность запакована дата: 08.02.2008 и время: 10.38 плюс минус минута, возможно еще секунды или милисекунды. Помогите расшифровать... |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
20 - это пробел
2E D8 82 2D CE 47 E3 40 - это TDateTime = Double - 8 байт это действительно 08.02.2008 10:38:00 целая часть Double - дни от (не помню какой) начальной даты дробная часть - время. Подробнее см. в F1 |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 07.02.2008
Сообщений: 150
|
![]()
Вот 6 записей; первая за сегодня, примерно 16.18, а остальные с интервалом в 1 минуту
20 BC BB BB BB D5 47 E3 40 20 C1 16 6C C1 D5 47 E3 40 20 C7 71 1C C7 D5 47 E3 40 20 CD CC CC CC D5 47 E3 40 20 D2 27 7D D2 D5 47 E3 40 20 D8 82 2D D8 D5 47 E3 40 Если мы первый байт (20) уберем, и остальные 8 разделим пополам, то увидим, что изменяются 4 байта, но количество часов то одинаковое (16) и что то должно то быть одинаковым... Помогите... |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Вот пример для первой строчки
Код:
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 07.02.2008
Сообщений: 150
|
![]()
Спасибо огромное, ВЫ ГЕНИЙ!
Уже месяц пытаюсь расшифровать эту запись, и никак... P.S. В DELPHI не силен, начал изучать его не сильно давно... |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 07.02.2008
Сообщений: 150
|
![]()
А есть ли функция, которая проверят TDatetime на валидность, а то если формат неверный, то при
decodeDate(D, Y1, M1, D1); появляется ошибка, и программа вылетает... Мне нужно проверять базу данных, которая состоит из списка записей, которые я привел выше, на валидность. Удалять неккоректные записи. Алгоритм и програмку написал, стал играться с базой, делая неверные записи, и програмка стала вылетать... ![]() |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Отдельной функции нет. Да и не нужно. Во первых не трудно проверить правильность значений обычными if. Во-вторых можно отлавливать исключения
DataOk := true try decodeDate(... except DataOk := false end |
![]() |
![]() |
![]() |
#8 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
А еще лучше покапаться и почитать статейки разные... и самому реализовать на низком уровне
![]() |
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Согласен, почитать всегда полезно. Даже если не дойдет до практической реализации
|
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 07.02.2008
Сообщений: 150
|
![]() Цитата:
Во-первых написало предупреждение, что переменная DataOk (я ее обьявил локально как булен) не используется. И снова программу выбивает не месте decode. А как проверить правильность переменной командой IF? Переменная D типа TDateTime: double... P.S.книжки по чуть чуть читаю, но не все получается найти... |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Формат даты разняться в Delphi | Cantana | Помощь студентам | 4 | 28.04.2008 09:16 |
Изменение упакованного exe | Marsik | Софт | 5 | 28.01.2008 10:30 |
формат картинки | AndrewASV | Общие вопросы Delphi | 3 | 23.09.2007 12:45 |
SOL-запрос интервала даты и времени в Delphi | DENIS_ | БД в Delphi | 5 | 23.12.2006 12:55 |