|
Как прочитать DateTime значение из VFP файла?
|
|||
---|---|---|---|
#18+
Всем привет. Может кто-нибудь в курсе как хранятся DateTime значения в Visual FoxPro файле? Понятно что это 8 байт, но как их декодировать в год, месяц, и т.п. - не могу нигде найти инфы... Например, дата 01.22.2009 00:00:08 хранится следующим образом: 0x46 0x75 0x25 0x00 0x40 0x1F 0x00 0x00 Как отсюда проэкстрактить дату и время - не понятно... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2009, 12:02 |
|
Как прочитать DateTime значение из VFP файла?
|
|||
---|---|---|---|
#18+
serg_kunz2, работающим с фоксом это все нафик не нужно, у них и так все нормально показывается. Вам то зачем понадобилось? Почему средствами фокса не возпользоваться? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2009, 12:04 |
|
Как прочитать DateTime значение из VFP файла?
|
|||
---|---|---|---|
#18+
Формат хранения типа DateTime FoxPro 8 байт Первые 4 байта - количество дней по Юлианскому исчислению (функция SYS(11, DateTime())) Следующие 4 байта - количество миллисекунд с полуночи с точностью до 333 миллисекунд Юлианский период это промежуток времени в 7980 лет, исползуемый в астрономических и хронологических расчетах. Начала юлианского периода - 1 января 4713год до н.э. Данные следует читать "справа-налево". Т.е. в 4 байтах записано 4-х значное число по основанию 256, где младшие разряды расположены слева (в начале числа) Значение: 0x46 0x75 0x25 0x00 0x40 0x1F 0x00 0x00 Дата это первые 4 разряда: 0x46 0x75 0x25 0x00 или в 10-ричной системе 70 117 37 00 70*256^0 + 117*256^1 + 37*256^2 + 00*256^3 = 2454854 Количество дней с начала юлианского периода до 01.01.2009 можно определить так SYS(11,{^2009-01-01}) = 2454833 дней Значит, записанное значение на (2454854 - 2454833) = 21 дней больше Если прибавить к 01.01.2009 21 день получим 22.01.2009 Время это последние 4 разряда: 0x40 0x1F 0x00 0x00 или в 10-ричной системе 64 31 00 00 64*256^0 + 31*256^1 + 0*256^2 + 0*256^3 = 8000 8000 миллисекунд = 8 секунд, прошедших с полуночи ==================== Итого: 22.01.2009 00:00:08 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2009, 15:04 |
|
Как прочитать DateTime значение из VFP файла?
|
|||
---|---|---|---|
#18+
serg_kunz2Всем привет. Может кто-нибудь в курсе как хранятся DateTime значения в Visual FoxPro файле? Понятно что это 8 байт, но как их декодировать в год, месяц, и т.п. - не могу нигде найти инфы... Например, дата 01.22.2009 00:00:08 хранится следующим образом: 0x46 0x75 0x25 0x00 0x40 0x1F 0x00 0x00 Как отсюда проэкстрактить дату и время - не понятно... Ну а без "экстракций" ежели - просто взять TTOC(DATETIME()), а полученную строку элементарно разложить на год, месяц... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2009, 18:14 |
|
Как прочитать DateTime значение из VFP файла?
|
|||
---|---|---|---|
#18+
ВладимирМФормат хранения типа DateTime FoxPro 8 байт Первые 4 байта - ... ... ==================== Итого: 22.01.2009 00:00:08 Пишу читалку файлов dbf (FoxPro) на MatLab, очень нужна была именно эта инфа. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2012, 11:38 |
|
|
start [/forum/topic.php?fid=41&gotonew=1&tid=1583754]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 163ms |
0 / 0 |