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