Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Русские буквы в файле *.dbf / 12 сообщений из 12, страница 1 из 1
20.10.2004, 15:25
    #32746639
LudMilok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Русские буквы в файле *.dbf
Доброго времени суток! Создаю средствами DELPHI 6 таблицу foxpro (tTable.TableType:=ttFoxPro). Программно заполняю поля данными из таблицы типа Paradox. При просмотре в BDE содержимое символьных полей (русский текст) отображается правильно. А при просмотре через VFoxpro 5.0 - ахинея, но русские буквы узнаваемы. А слова нет.Как их увидеть нормально?
В BDE в Configuration Langdriver='ascii' ANSI.
Пробовала подключить в config.fpw codepage=1251 - ничего не получилось
...
Рейтинг: 0 / 0
20.10.2004, 15:36
    #32746669
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Русские буквы в файле *.dbf
1) Созданный файл DBF должен иметь в заголовке признак установленной кодовой страницы. Этот признак записывается в 29 байте (первый байт имеет порядковый номер 0)

866 кодовая страница - 0х65 (ASCII = 101)
1251 кодовая страница - 0хС9 (ASCII = 201)

В среде FoxPro можно проверить какая кодовая страница установлена у таблицы при помощи функции CPDBF()

Также в среде FoxPro можно изменить признак кодовой страницы при помощи программы CPZERO.PRG поставляемой вместе с FoxPro (TOOLS\CPZERO\cpzero.prg)

2) В FoxPro должен быть файл CONFIG.FPW со строкой CODEPAGE=1251. Причем этот файл конфигурации должен подхватываться в момент загрузки среды FoxPro. Проверить, какой именно файл был захвачен можно функцией SYS(2019)

3) В поставке FoxPro до 5 версии включительно обязательно должен быть файл FoxPro.int (не путать с ini. Здесь расширение от слова international)
...
Рейтинг: 0 / 0
20.10.2004, 15:51
    #32746707
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Русские буквы в файле *.dbf
есть опыт совместного использования таблиц с делфи
он иногда некоторые буквы коверкает
Ф например кажеться там типа плюс ставит
восстанавливал вычисляя правило
особенно тяжело для делфи когда кодовая 866 а база под вижуал
у делфи крышу сносит он таких шуток плохо понимает
...
Рейтинг: 0 / 0
20.10.2004, 16:29
    #32746820
LudMilok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Русские буквы в файле *.dbf
to ВладимирМ
cpDbf(1) = 1252
cpcurrent(1)=1251
cpcurrent(2)=866

После того, как снесла напрочь инфу в 29 байте заголовка, при открытии таблицы FOX поинтересовался в какой кодировке. А насильно нельзя заставить спрашивать? Может открывать табл можно с каким нить параметром?
зы ыны(2019) не работает
...
Рейтинг: 0 / 0
20.10.2004, 16:40
    #32746856
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Русские буквы в файле *.dbf
если ничего не менять в настройках то при открытии в эксклюзивном режиме с пустым 29 байтом всегда спрашивает
...
Рейтинг: 0 / 0
20.10.2004, 16:46
    #32746878
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Русские буквы в файле *.dbf
use tabel1 in 0 excl
а в первом байте стоит 03 или 30 ?
...
Рейтинг: 0 / 0
20.10.2004, 16:50
    #32746888
LudMilok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Русские буквы в файле *.dbf
to leaf
Таблица формируется программно.Получается,что лазить в заголовок надоть также программно.
...
Рейтинг: 0 / 0
20.10.2004, 16:54
    #32746901
LudMilok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Русские буквы в файле *.dbf
В нулевом байте стоит 03.
...
Рейтинг: 0 / 0
20.10.2004, 17:02
    #32746925
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Русские буквы в файле *.dbf
Судя вот по этому

cpDbf(1) = 1252

Delphi сформировал таблицу с кодовой страницей 1252 (Win Eng), но записал русские буквы в кодовой странице 1251 (Win rus).

Попробуй при помощи программы CPZERO.prg изменить метку кодовой страницы на 1251. Просто чтобы проверить факт правильно записи информации. Из среды FoxPro это можно сделать так:

DO (Home()+"Tools\cpzero\cpzero.prg") WITH "MyTable.dbf",1251

Я не помню, была ли SYS(2019) в VFP5, но одной из причин того, что она ничего не возвращает может быть как раз то, что файл CONFIG.FPW вообще не подхватывается! Т.е. возвращается пустая строка.
...
Рейтинг: 0 / 0
20.10.2004, 17:04
    #32746932
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Русские буквы в файле *.dbf
дос таблица с виндос кодировкой
могу посоветовать только попробывать сменить языковой драйвер
хотя я говорю что у делфи это бывает
а начет менять программно если в фоксе то функции:
fopen,fseek,fwrite,fread,fclose
...
Рейтинг: 0 / 0
20.10.2004, 17:06
    #32746939
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Русские буквы в файле *.dbf
Да, еще, поковыряйся в настройках Delphi. Или спроси в конфе по Delphi

http://www.sql.ru/forum/actualtopics.aspx?bid=20

Может, кроме указания типа таблицы (tTable.TableType:=ttFoxPro) там есть и указание кодовой страницы?
...
Рейтинг: 0 / 0
20.10.2004, 17:40
    #32747036
LudMilok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Русские буквы в файле *.dbf
2 ВладимирМ
Отличная программа cpZero()! Отлично работает!!!
Формируемая мной таблица в DELPHI посредством SMTP автоматически
отсылается заказчику. Какая кодировка ему нужна, что будут делать с таблицей - мне неведомо. Все-таки ,ИМХО, это его проблемы. Если поступит заказ на определенную codepage - так в 29-й байт поставлю нужную программно до отправления.
Всем спасибо!!!!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Русские буквы в файле *.dbf / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]