![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение Number из файла Paradox (*.db) [D7, Paradox]
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 !!!!!