![]() |
| ||
|
|
Новости |
Поиск |
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-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