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-25 08:42:00) [1]

YuRock ©

Очередное открытие Америки состоялось? Поздравляю.
Но:
Байт этот не зовется "ISANSI". Этот байт говорит о кодовой странице данных. (имет больше значений чем "анси"/"неанси").
Бывают случаи, когда этот байт говорит: "ЁПРСТ!, данные в моем файле лежат в ANSI". А на самом деле они в OEM.
И это видно в любом вьюере не ориентированном на формат DBase.
Например во вьюере FAR"а.

Вот и все. Если бы автор вопроса выполнил рекомендации данные ему в самом начале, все было бы уже на своих местах.


YuRock   (2003-12-24 19:41:00) [2]

Ребята! Я вас помирю. Да, данные в dbf-ке не закодированы, но вот в чем дело: у этого драйвера (я с ним 2 года работал) есть признак (30-й байт с начала файла), называемый "ISANSI".

Если этот байт равен $C9 (можно посмотреть, например, в фаре F3-F4), то ISANSI = True, и тогда строковые данные представляются в таком виде, над которым вы бьетесь. Обычно этот формат используют в Clipper"ах под Windows. Прочитать его можно, например, программно с помощью дельфевой TTable при TableType = ttFoxPro (при чтении строк их надо конвертить через CharToOem (или OemToChar - я всегда путаю)).

Если же нет - обычный досовский DBase, для просмотра которого сгодится и фар, и эксель, и т.д...


ikis   (2003-12-24 19:34:00) [3]

Гоню... На самом деле на экране
"А


Anatoly Podgoretsky   (2003-12-24 19:14:00) [4]

Ерунду какую то гонишь, из приведеных хекс кодов никак не может получить вышеприведенная строка.


ikis   (2003-12-24 19:05:00) [5]

Ну вот, что получилось:

"А


ikis   (2003-12-24 18:42:00) [6]

А, понял. Счас сделаю...


Reindeer Moss Eater   (2003-12-24 18:40:00) [7]

А неужели очень рекомендованный "Штирлиц и Bred2r" не позволяет видеть HEX коды байтов просматриваемого файла?


ikis   (2003-12-24 18:38:00) [8]

Хм... Стыдно признаться, но... как эти байты выковырять? Букв-то я сколько угодно могу привести...


Reindeer Moss Eater   (2003-12-24 18:26:00) [9]

Ты бы лучше не зубами раскидывался, а привел бы пару : <байты_в_поле> = <буквы_на_экране>


ikis   (2003-12-24 18:20:00) [10]

Но при этом дозволяется экспортировать из генератора отчетов?
И программа доступна и свободна к юзанью?
Это подарочный диск для гостей города. Просто прога старая, отсюда все проблемы.
Не закодированы они, зуб даю! ( как последний аргумент!! ;))


Reindeer Moss Eater   (2003-12-24 18:14:00) [11]

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


А затем, что бы труднее было воспользоваться самим файлом данных без участия программы.


Reindeer Moss Eater   (2003-12-24 18:11:00) [12]

Вьювер по умолчанию? Да нет, я фаром вообще-то не пользуюсь. К тому же, чтобы прочитать этот текст, я использовал Штирлица и Bred2r (самоделка одна, очень рекомендую) - безрезультатно

Ты, несправедливо гонимый, утверждал, что тебе очевидно, что данные в файле не закодированы.


ikis   (2003-12-24 18:09:00) [13]

Соврамши - хорошее слово! Только применили Вы его неправильно.
Где это я утверждал, что предшественник открывал оригинальный файл? По-моему, совершенно ясно теперь, что он поступил точно также, как я - загнал отчет по всем предприятиям в RS и "сохранил как..."

Вьювер по умолчанию? Да нет, я фаром вообще-то не пользуюсь. К тому же, чтобы прочитать этот текст, я использовал Штирлица и Bred2r (самоделка одна, очень рекомендую) - безрезультатно.

По поводу VFP и прочего "шаманства" - все попробовал! Точно можно сказать, что к FoxPro мои файлы не имееют отношения...

Так что "не гоните, да не гонимы будете", как сказал не помню кто...


Reindeer Moss Eater   (2003-12-24 17:59:00) [14]

Ну так фар-то бы все равно увидел осмысленный русский текст в этом случае.


sniknik   (2003-12-24 17:52:00) [15]

Reindeer Moss Eater © (24.12.03 17:38) [20]
если VFP то он в кодировке 1251 работает, вроде бы, но в общем точно не OEM и ANSI. (т.е. хотя осмысленного текста нет но могут быть и не закодированы)


Reindeer Moss Eater   (2003-12-24 17:38:00) [16]

Ну у него (автора) вьюер по умолчанию. Только OEM и ANSI понимает. Если осмысленного текста не видим, то я и сделал предположение, что данные закодированы.


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

Да еще и открывалос и фаром, что вообще ни на какие перекодировки не влияет.


Anatoly Podgoretsky   (2003-12-24 17:34:00) [18]

Это утверждалось не только предшественником, а самим авторов, что означае где соврамши.


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

Сохраняешь как *.xls - все читается, все зашибись!

Действительно зашибись, если учесть, что утверждалось, что предшественник открывал ёкселем оригинальный файл, а не сохраненный xls.


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

Ура! Все разрешилось само собой! Сия програмуля использует ReportSmith для печатанья отчетов, а в нем есть... меню Save As! Сохраняешь как *.xls - все читается, все зашибись! Ну теперь-то я ему...

Прошу прощения у уважаемых господ (особенно у любителя моха :о) за украденное внимания. Больше не буду... ;оD


Страницы:   1 2

Наверх

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