Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2013, 17:23   #1
nVz
Пользователь
 
Аватар для nVz
 
Регистрация: 09.12.2009
Сообщений: 61
По умолчанию Кодировка dbf

Всем привет.
Наткнулся на следующую проблему
Есть файл dbf, подключаю его через ADOConnection - Microsoft OLE DB Driver for Visual FoxPro.

Все бы вроде ничего, но в таблице есть поле, в котором находится русский текст, и отображаются не все буквы, читабильно, но чтото не то)) картинку прикладываю.

Изначально подключал через BDE - Database - Файлы dBase. в этом случае одни знаки вопроса были, пробовал открыть через Database Desktop - закорючки.

с ADO вроде все норм, но не совсем до конца) может кто знает в чем дело..
Изображения
Тип файла: png Безымянный.png (3.6 Кб, 210 просмотров)
icq: 489-124-264; mail: invazia@mail.ru

Последний раз редактировалось nVz; 31.07.2013 в 17:25.
nVz вне форума Ответить с цитированием
Старый 31.07.2013, 22:39   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ой, помнится мне, были такие глюки...
сейчас буду писать исключительно по памяти и вообще, не факт, что Вам поможет, но, имхо, был такой косяк...
попробуйте сделать две вещи (обязательно обе).
1) проверить кодовую страницу в заголовке DBF файла (это 29-й байт, считая от нуля)
обязательно должна стоять правильная кодовая таблица (0x65 для 866 (DOS) кодировки; 0xC9 для 1251 (WIndows))
2) создайте индексный файл (.CDX) по любому полю.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.07.2013, 23:15   #3
nVz
Пользователь
 
Аватар для nVz
 
Регистрация: 09.12.2009
Сообщений: 61
По умолчанию

Спасибо вам за ответ, но думаю это не выход, т.к такие файлы будут приходить постоянно, и каждый раз проделывать это не совсем удобно будет с каждым.

скачал программу "Редактор DBF"
http://hotdownloads.ru/redaktor_dbf
открывает все без проблем, потом делаю экспорт, но опять же не удобно..
icq: 489-124-264; mail: invazia@mail.ru
nVz вне форума Ответить с цитированием
Старый 31.07.2013, 23:44   #4
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Файлы не секретные (?) - хотелось бы глянуть на причину
ReportCube вне форума Ответить с цитированием
Старый 31.07.2013, 23:53   #5
nVz
Пользователь
 
Аватар для nVz
 
Регистрация: 09.12.2009
Сообщений: 61
По умолчанию

Файл к сожалению выложить не могу, т.к чужие данные, но сделал скриншот заголовка файла в программе, о которой писал выше
Изображения
Тип файла: jpg Безымянный.jpg (42.4 Кб, 147 просмотров)
icq: 489-124-264; mail: invazia@mail.ru
nVz вне форума Ответить с цитированием
Старый 01.08.2013, 00:05   #6
nVz
Пользователь
 
Аватар для nVz
 
Регистрация: 09.12.2009
Сообщений: 61
По умолчанию

в таком виде показывает Database Desktop
Изображения
Тип файла: png Безымянный.png (6.8 Кб, 203 просмотров)
icq: 489-124-264; mail: invazia@mail.ru
nVz вне форума Ответить с цитированием
Старый 01.08.2013, 08:31   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

у вас в заголовке файла, там, где должна быть кодовая страница находится число 03. Это что-то своё, нестандартное.
Вот в этом (в первую очередь) и причина проблемы.

Теперь по поводу решения.
Если Вас найденный Вами обходной путь (т.н. workaround) устраивает, то и слава Богу, можно забыть о проблеме.
Если же нет, то, Вам можно попробовать использовать другие компоненты для доступа к DBF (в первую очередь TDBF или Halcyon). Это раз.
Второе, а кто Вам мешает проставлять правильную кодовую таблицу в своей программе на делфи (прямо через прямую запись байта в файл)?
Ну и третье. Подготовьте файл (удалите все записи и добавьте пару абсолютно бессмысленных записей - только важно, чтобы там был русский текст), если полученный файл точно так же отображается кракозябрами - тогда выкладывайте его на форум. Думаю, что тут помогут.

Успехов.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.08.2013, 11:11   #8
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Предположу что таблицы получены из 1С, так как именно 1С-ка имеет привычку портить 3 первых байта в текстовых полях, что там и как не знаю (слышал про это от коллеги интегрирующего 1С и Delphi софт), но подозреваю что всё это многократно обсуждалось на форумах 1С-ников.
astecenko вне форума Ответить с цитированием
Старый 01.08.2013, 11:40   #9
nVz
Пользователь
 
Аватар для nVz
 
Регистрация: 09.12.2009
Сообщений: 61
По умолчанию

Спасибо за помощь.
С помощью примера приложенного к TDBF удалось открыть в нормальном виде этот файл, теперь осталось разобраться как привязать туда Query и все связать
icq: 489-124-264; mail: invazia@mail.ru
nVz вне форума Ответить с цитированием
Старый 01.08.2013, 11:41   #10
nVz
Пользователь
 
Аватар для nVz
 
Регистрация: 09.12.2009
Сообщений: 61
По умолчанию

astecenko, нет, программа из директории которой забираю этот файл не 1с, а чья то самописная.
icq: 489-124-264; mail: invazia@mail.ru
nVz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADO + .DBF + кодировка shurik_7866 БД в Delphi 1 07.10.2011 20:47
dbf и tqueru, собрать несколько dbf файлов в одном, импорт вобщем betirsolt БД в Delphi 16 10.07.2011 13:52
Кодировка Dbf Nikolaeva БД в Delphi 7 05.02.2008 13:24