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

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

dBASE зашифровался! [D7, dBase, FoxPro, Paradox]


Страницы:   1 2

ikis ©   (2003-12-24 13:53:00) 

Вводное:есть база даных на CD в виде набора таблиц *.dbf, содержащая сведения о предприятиях региона. Есть программа-оболочка, позволяющая эти данные фильтровать и печатать.
Задача:расширить функцирнальность оболочки, формировать наборы по редко используемым признакам
Проблема:русский текст, который прекрасно читается с оболочкой, в Database Desktop/Excel/Access выглядит вот так:
"А


Reindeer Moss Eater   (2003-12-24 16:42:00) [21]

Берем первую запись из этого файла.
Берем слово, отображаемое программой на естественном языке.
Имеем пару Байт<->Cимвол алфавита.

Остается определить в какой кодировке данные. Тем более что ANSI и OEM уже отпали сами собой.
Может это KOI


ikis   (2003-12-24 16:27:00) [22]

Веское основание: в случае перекодирования "на лету" эту задачу нельзя было бы решить средствами Excel. Кроме того, диск не имеет никакой защиты, регистрации или чего-то еще. Зачем шифроваться, кодировать "на лету", если оболочка всегда под рукой и с ее помощью доступны абсолютно все записи?


Reindeer Moss Eater   (2003-12-24 16:19:00) [23]

И перекодирования "на лету", очевидно, не происходит...

"Очевидно" - это просто слово-паразит, или имеет какое-то веское обоснование?


ikis   (2003-12-24 16:15:00) [24]

> Reindeer Moss Eater ©: небольшое уточнение - текст на самом деле не русский, а украинский. Но это ни на что не влияет на самом деле - просто отсутствующие в русском буквы замещаются "?", и все!
Еще одно: мой предшественник - продвинутый пользователь Excel, не программер, каким-то чудом решил эту проблему! Как - никто не знает, связь с ним потеряна навсегда. В общем, это теперь для меня дело чести. И перекодирования "на лету", очевидно, не происходит...


Reindeer Moss Eater   (2003-12-24 16:08:00) [25]

TYPE=FILE, LANGDRIVER=dBASE RUR cp66

Если это так, то в фаре ты бы увидел русские буквы при DOS кодировке. Если же ты их все же не видишь, значит данные перекодированы и раскодирование происходит в приложении налету


ikis   (2003-12-24 16:01:00) [26]

Спасибо всем! Новая информация: при ближайшем рассмотрении содержимого CD, была обнаружена папочка "IDAPI" (да, вот такая древняя прога!): LANGDRV (d), bdecfg.exe, bdecfg.hlp, idapi.cfg, а также DLL - idapi01, idasci01, idbat01, iddbas01, idodbc01 и др. Так вот, bdecfg, запущенный с CD, показывает драйвер DBASE Version 1.0 (!), TYPE=FILE, LANGDRIVER=dBASE RUR cp66 и т.д. Стало быть, вот где собака порылась! :))
Новая задача: и как заставить всю эту хрень работать???


Reindeer Moss Eater   (2003-12-24 15:43:00) [27]

Значит данные там лежат ни в анси ни в оем.
Значит скорее всего они там закодированы.
Значит скорее всего шаманство с языковыми драйверами не поможет.
Значит скорее всего придется писать грабилку текста с экрана и запись в свой DBase файл.


ikis   (2003-12-24 15:26:00) [28]

>Reindeer Moss Eater ©
Так выглядит одна и та же строка в кодировке DOS:


Reindeer Moss Eater   (2003-12-24 15:10:00) [29]

Reindeer Moss Eater © : Заглянуть при помощи чего?
При помощи фаровского вьера (F3).

Где это указано?
Нажимая последовательно во вьюере F8 можешь получить ситуацию, когда будет видет текст на русском. Посмотрев на первую статус - строку вьюера можешь увидеть кодировку данных.

Что даст мне осознание факта, что данные в такой-то кодировке?
Хороший, мать его, вопрос. Просто отличный.
Даст направление для дальнейших действий, вот что это даст.


sniknik   (2003-12-24 15:09:00) [30]

>> LordOfSilence © : Access/Файл/Открыть
> Попробуй натравить на него фоксовский драйвер.
этот
DRIVER={Microsoft dBase VFP Driver (*.dbf)}
обычно у него уже есть алиас в ODBC "Visual FoxPro Tables".


LordOfSilence   (2003-12-24 14:59:00) [31]

Вот когда ты "открыть" делаешь, попробуй тип файла выбрать
ODBC_Databases(). Предварительно создай ODBC-источник.
Попробуй натравить на него фоксовский драйвер.


ikis   (2003-12-24 14:51:00) [32]

> Anatoly Podgoretsky © : смена шрифта DD по умолчанию не помогла, к сожалению.
Перекодировать обратно? Как?!!

> Reindeer Moss Eater © : Заглянуть при помощи чего? Где это указано? Что даст мне осознание факта, что данные в такой-то кодировке?

> LordOfSilence © : Access/Файл/Открыть


LordOfSilence   (2003-12-24 14:25:00) [33]

Ты в Access как закачиваешь эти *.dbf?


Reindeer Moss Eater   (2003-12-24 13:59:00) [34]

Решение:
Заглянуть внутрь файла и выяснить в какой кодровке в нем представлены данные.


Anatoly Podgoretsky   (2003-12-24 13:56:00) [35]

Database Desktop излечимо, сменой шрифта
Excel/Access означает, что текст перекодирован из OEM в ANSI, попробовать перекодировать обратно.


Страницы:   1 2

Наверх

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