![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
dbf файл - не видно чисел [D7, dBase, FoxPro]
ruslan_as © (2009-09-14 09:00:00)Приветсвую знатоков. Выручайте: приходят телефонные переговоры в dbf-файлах. Созданы они в какой-то DOS программе (какой - не удается узнать). Проблема в том, что числа в ней проставлены с разделителем точка. Попробовал TDBF - вместо чисел нули. Просмотрел через утилиту в Total Comandere - есть нормальные числа. Через BDE - показывает целые числа (знаки после точкти отсекает) да и BDE использовать мне нельзя. Подскажите, как выкрутиться. Может есть какой компонент который справиться с этой задачей?
ruslan_as (2009-09-14 14:15:00) [21]>>Сергей М. Это программно реализуемо? Потому как это мне прийдется делать ежемесячно... Спасибо за то, что помогаете...
Сергей М. (2009-09-14 14:14:00) [22]
> Разбираться не стал
Может оно и верно, но следовало бы разобраться, ибо те же грабли , вполне возможно, хлобыстнут позже.
Следовало просто везде, где в проекте встречается слово Types, заменить его на, например, _Types
Сергей М. (2009-09-14 14:11:00) [23]Поставь в заголовке поля "SUMMA" в поле precision ("Дес.разряд") значение 4.
Что за идиот там поставил 0 и как он додумался до подсчета суммы с точностью до сотых долей копейки - ума не приложу)
ruslan_as (2009-09-14 13:54:00) [24]Не сочтите за наглость, может у кого будет возможность глянуть мой файл... Не хотелось бы ошибиться в ответе на Ваши вопросы и завести ветку в тупик...
http://rapidshare.com/files/279873434/7202035_03.rar.html
ruslan_as (2009-09-14 13:48:00) [25]>>Ты бы хоть сообщение до конца дочитал : там ведь тебя спрашивают, создать ли этот файл по причине его отсутствия)
В том то и дело, что не спрашивает. При запуске dpr пишет сообщение, что не может найти файл. А при компиляции выдает
[Fatal Error] DBFHeader.dpr(6): Unit Windows was compiled with a different version of Types.DWORD. Разбираться не стал.
>>А чему, согласно наблюдаемому тобой заголовку этого поля, равно кол-во дробных разрядов ?
Это я сообразил, что в базе не видно разрядов из-за этого. Только возникают вопросы, почему через другие программы (тот же DOS Navigator или F3 в Total Comander 7 - именно 7, а не ниже ) я вижу эти знаки, а через стандартные компоненты нет? Что тогда делать мне? Изменять в каждом пришедшем файле тип поля?
Anatoly Podgoretsky (2009-09-14 13:48:00) [26]Допустим это N16.x тогда еще остается побеспокоиться насчет правильного формата, что не обязательно, особенно для самописного доступа.
Anatoly Podgoretsky (2009-09-14 13:47:00) [27]Для Numeric требуется два поля precision и size
Кроме того никаких программ искать не надо, с Дельфи идет Database Desctop
Сергей М. (2009-09-14 13:24:00) [28]
> не может найти файл DBFHeader.res
Ты бы хоть сообщение до конца дочитал : там ведь тебя спрашивают, создать лиэтот файл по причине его отсутствия)
Сергей М. (2009-09-14 13:22:00) [29]
> Поле SUMMA (у которого проблема):
> тип Numeric
> Размер поля 16
А чему, согласно наблюдаемому тобой заголовку этого поля, равно кол-во дробных разрядов ?
По идее оно д.б. равно 2, если речь в поле идет о рублях-копейках ..
ruslan_as (2009-09-14 13:20:00) [30]>>Да вот прямо той демо-программой, фигурирующей по приведенной ссылке, как раз и можно посмотреть)
При компиляции выдает Что не может найти файл DBFHeader.res. Пришлось через WinHex.
ruslan_as (2009-09-14 13:16:00) [31]Разобрался: простая таблица
Размер заголовка в байтах 97
Размер записи в байтах 19
По таблице остальное "0"
Поле SUMMA (у которого проблема):
тип Numeric
Размер поля 16
Что еще нужно, для того что бы определить тип?
Сергей М. (2009-09-14 13:11:00) [32]
> ruslan_as (14.09.09 12:55) [3]
Да вот прямо той демо-программой, фигурирующей по приведенной ссылке, как раз и можно посмотреть)
ruslan_as (2009-09-14 12:55:00) [33]Сергей М. ©. Извините за невежество. Какой программой лучше просмотреть структуру заголовка файла (эти 32 байта).
sniknik (2009-09-14 09:42:00) [34]> Проблема в том, что числа в ней проставлены с разделителем точка.
это не проблема, это стандарт. даже последний виндовый VFOXPRO так пишет.
> Попробовал TDBF - вместо чисел нули.
значит не так пробовал (насколько знаю он со старыми dos dbf(и dBase и Foxpro) файлами нормально работает, хотя их самих несколько версий...), или причина не в этом.
> Подскажите, как выкрутиться.
не надо выкручиваться, надо нормально работать, проверить формат dbf-а, посмотреть тип полей, и использовать то, что подходит, и правильного типа.
Сергей М. (2009-09-14 09:23:00) [35]
> приходят телефонные переговоры
Это оченьважно для локализации проблемы)
> какой - не удается узнать
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=624