Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» проблема в Delphi с кодировкой DBF

Автор: mastervigo
Дата сообщения: 20.03.2003 19:06
Моя прога вытягивает с SQL-сервака таблицы и, сделав определённые действия, конвертирует их в DBase4. У меня и ещё на 5 тачках всё нормально, а в другом филиале нашей фирмы вместо русских символов знак "#". У нас всё одинаковое: железо, винда, BDE, СУБД(SQL-сервака и клиента). Может кто знает, в чём проблема ?
Автор: JeanM
Дата сообщения: 20.03.2003 21:19
а винду одни и те же люди настраивали? Если винда 98, то можно попробовать в файле вин.ини (в папке виндовс) в разделе фонт-субститутес указать дополнительно несколько шрифтов, т.е. там должно быть примерно так (точно не помню)

Times New Roman,0 = Times New Roman ...
а надо добавить такую строку прям в этом же разделе после последнего объявлению шрифтов
Times New Roman,204 = Times New Roman ...
и также можно сделать для всех шрифтов. Это может помочь...

Если дело не в этом, то возможно в настройке BDE, но это я так думаю, а как лечить не знаю.

В любом случае, мне кажется, что можно программно конвертировать OemToAnsi перед записью инфы в таблицу. Эта функция вроде так и называется. Тогда везде должно работать точно.
Автор: vserd
Дата сообщения: 21.03.2003 09:47
mastervigo
Нет не одинаковое,
в BDEADMIN-е Drivers->Native->DBASE параметр LangDriver разный.
Можешь проверить.
Если не хочешь зависить от этого, прочитай FAQ от Акжана Абдулина
Автор: JeanM
Дата сообщения: 21.03.2003 11:59
vserd, а где взять его, это факу от Акжана Абдулина?
Автор: vserd
Дата сообщения: 21.03.2003 12:42
JeanM

Цитата:
а где взять его, это факу от Акжана Абдулина?

Ну вобщето в интернете, когдато брал на его страничке, ищи через поисковики
Автор: mastervigo
Дата сообщения: 21.03.2003 19:22
Спасибо за ответы. Сам случайно нашёл ответ: Моя прога написана на Delphi7 и соответствено БД-компоненты опираются на BDE от "семёрки", а в филиале использовали BDE от Delphi5. Поставили от Delphi7 - и всё OK. Страно, но факт.
Автор: Tropin
Дата сообщения: 10.04.2003 15:11
vserd

Цитата:
в BDEADMIN-е Drivers->Native->DBASE параметр LangDriver разный.

Что-то у меня совсем не получается это использовать!
Короче:
Есть файлик с данными (формат я не знаю, но STANDARD в BDE показывает мне содержание таблицы) то есть
SQLExplorer->Databases->New...->STANDARD->DefaultDriver=DBASE->PATH="C:\";
BDEADMIN-е Drivers->Native->DBASE->LangDriver="dBASE RUS cp866";
Смотрю табличку SQLExplorer'ом вижу закарюки!!!
пробовал другие лэнгдриверы - результат тот же!
также менял DBASE, PARADOX, FOXPRO... безуспешно!

А надо всего лишь инфу вырывать из файла!!!
ЗЫ: что досовая кодировка - уверен! (Far'ом смотрел :)
Автор: Tishka
Дата сообщения: 10.04.2003 16:37
Database Alias -> LANGDRIVER -> Pdox ANSI Cyrillic
Автор: UncoNNecteD
Дата сообщения: 10.04.2003 17:05
Дело не в версии, дело в LANGDRIVER'e!
Автор: vserd
Дата сообщения: 10.04.2003 17:36
Tropin
Жестко конечно, но попробуй перегрузить машину.
У меня, если сохранить LangDriver отличный от 866 показывает закарлючки, возврщаю на место, все нормально показывается.
Автор: antixa
Дата сообщения: 11.04.2003 08:37
Tropin
Может быть у тебя проблема в самом файле? Посмотри байт 1D (hex) в заголовке. Если там стоит 65 - это FoxPro подставил свою русскую кодировку. Скинь в 0. А в дальнейшем (если надо смотреть файл dbf из того же FoxPro) в ответ на предложение подставить кодовую страницу при открытии файла - отказывайся.

Страницы: 1

Предыдущая тема: Задание повышенной сложности про шахматного коня


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.