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

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

Чтение Number из файла Paradox (*.db) [D7, Paradox]


Страницы:   1 2

Barsky ©   (2006-01-30 12:40:00) 

Есть таблица *.db
В ней есть поле Number
Это поле храниться в файле в 8 байтах
Эти 8 байт я знаю.
Как их преобразовать в double?
Тыркаюсь уже час и никак не могу разобраться...


Barsky   (2006-01-30 13:47:00) [21]


> Чем тебе БДЕ так претит ?

БДЕ мне нравится, но до него не дотянуться в конкретной задаче.


> Этот самый "язык" умеет ли импортировать и вызывать ф-ции
> из DLL ?


Не думаю.


Digitman   (2006-01-30 13:44:00) [22]


> Barsky ©   (30.01.06 13:13) [7]


Чем тебе БДЕ так претит ?


> Нужно в другом языке


Этот самый "язык" умеет ли импортировать и вызывать ф-ции из DLL ?


Barsky   (2006-01-30 13:44:00) [23]

Наверно меня не понимают.

Есть что-та типа "C0 8F 40 00 00 00 00 00"
Это hex из файла .db.
Это число.
В таблице это "1000".
У меня есть файл.
Я получил "C0 8F 40 00 00 00 00 00".
(знаю какие байты из файла взять).
Теперь мне нужно понять что это именно "1000", а не , например, "2000".

Тоесть как paradox записывает поля типа number?


msguns   (2006-01-30 13:39:00) [24]

Если число из поля записи БД надо просто отображать (в фиксацией дроби, например), то вполне годится TNumericField(FieldByName('')).DisplayFormat := '0.00'
Если надо использовать в выражениях, то FieldByName('').AsFloat


Barsky   (2006-01-30 13:13:00) [25]


> MyDataset.MyNumericField.AsDouble

Нужно без использования BDE.
Просто имея файл и зная где эти 8 байт записаны.
Нужен алгоритм преобразования этой последовательности в обычное число


Digitman   (2006-01-30 13:09:00) [26]


> В ней есть поле Number
> Это поле храниться в файле в 8 байтах


MyDataset.MyNumericField.AsDouble


Barsky   (2006-01-30 13:06:00) [27]


> Эти 8 байт с завидной регулярностью повторяются в каждой
> записи таблицы, "спрятанной" в файле *.db. Открой его как
> положено, TQuery, TTable - и получи Набор данных, теперь
> найди в нём единственную нужную и получи значениее поля
> (Fields, FieldByName, ...)


Будет использоваться не в Delphi. Нужно в другом языке, который paradox не знает, вытащить из таблицы 1 число.

Спрашиваю здесь, тк больше негде =)


Barsky   (2006-01-30 13:02:00) [28]

Так как из "машинного" формата обыкновенное десятиричное число получить?


msguns   (2006-01-30 12:59:00) [29]

>Виталий Панасенко   (30.01.06 12:50) [1]

Даже если выматериться три раза, твоя поправка неверна в корне !
Парадокс не знает, что такое double ! Он хранит все дробные числа в плавающем "машинном" формате, а вот как они будут обрабатываться "клиентом",
это его абсолютно не волнует !


ЮЮ   (2006-01-30 12:55:00) [30]


> Эти 8 байт я знаю.

Ну и чего тебе от тааблицы *.db если ты и так всё знаешь? (
> Эти 8 байт я знаю.

)

Эти 8 байт с завидной регулярностью повторяются в каждой записи таблицы, "спрятанной" в файле *.db. Открой его как положено, TQuery, TTable - и получи Набор данных, теперь найди в нём единственную нужную и получи значениее поля (Fields, FieldByName, ...)


Виталий Панасенко   (2006-01-30 12:50:00) [31]

3.14здец !!!! Эти 8 байт И ЕСТЬ DOUBLE !!!!!


Страницы:   1 2

Наверх

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