FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9176
Вход
Еще раз к вопросу о неверном отображении отдельных символов

Дополнение к инструкции Владимира Максимова "Неверное отображение отдельных символов или несовпадение кодовых страниц"


 
Прислал: Wild Kitten   Категория: Разное


Еще раз к вопросу о неверном отображении отдельных символов

Вот еще одно свежее (для меня, во всяком случае ;) дополненьице.
При введении данных в поля character в форме - сначала все нормально, но при переходе в иное поле (хошь клавой, хошь мышем, хошь как ;) некоторые русские буквы вне зависимости от того, где именно в слове они располагаются, заменяются на аглицкие, сиречь латинские. Например, вводим "русский", а при переходе в иное поле получаем "dусский". И не побороть это было никак!
Fox у меня 8-й, аглицкий (дареному коню, знаете ли...), установка полная, операционка XP Pro, т.е. все нужные файлы присутствуют. Настройки сделаны все (именованные коллегой выше и еще некоторые). Кодовые страницы - исключительно принудительные, 1251-е. Операционная система настроена вся.
Кстати,
>Т.е. надо влезть в системный реестр и поменять все ссылки с 1252 на 1251. К сожалению, я не могу указать полный перечень адресов, где такая замена необходима.

В реестре вводите строку поиска "1252" и везде, где в содержимом энта пакость проявится - прописываете "1251". Для пущей стабильности я оное действие проделал и с параметром "1250".

К сожалению, все это не помогло. Вернее, в пределах самой Фоксы - оные действия пользу принесли. Но вот при запуске компилированных приложений (от .app до TopLevel exe) - увы...
Не спасла даже подмена кодовых таблиц *.cpx на русские внутри, но с аглицкими именами.

А лечилось все до противности просто - вместо Character в редакторе структуры таблицы прописываете Character(binary), или, если таблиц много, а времени мало - делаете простую программку:

USE old.dbf
COPY STRUCTURE EXTENDED TO old_ext
SELECT b
USE old_ext
GO TOP
REPLACE field_nocp WITH .T. all FOR field_type=[C]
GO TOP
CREATE new from old_ext

Можно, конечно и лучше, но уж очень некогда было...


 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.867)
Дополнения пользователей
Еще раз к вопросу о неверном отображении отдельных символов
[+][?]
Дмитрий
08.07.04 09:11:12

У меня такая проблема возникала когда, я брал базовые классы VFP например Дуга Хеннинга, и на
основе их делал свою форму, все дело в том, что как все знают библиотеки VFP это тоже есть DBF-ки,
только расширение другое имеют и естественно у Дуга они имели кодовую страницу 1252, это можно
увидеть посмотрев Project Info вкладку Files. Остается только с помощью cpzero поменять кодовую
страницу у всех на 1251 и все начинает отображаться нормально.

Звиади Гогилава
08.07.04 20:06:18

Создаём фаил config.fpw в диреектории где фокс, а при создании ЕХЕ или АРР в туже директорию
Пишем: 
codepage=1252

Вместо 1252 можете ставить 1251 и тд. и тп.
Иван Литвин
26.07.04 16:38:12

Еще одно решение проблемы, возникающей при добавлении старых MS-DOS DBF файлов командой 
APPE FROM GETF('dbf') AS 866
В Runtime версии (EXE файл) выводилось сообщение 
"Недопустимая кодовая страница" хотя при разработке на полной версии все работало.
Решение подсказал GoodMan

В исходных DBF не установлена кодовая страница, по умолчанию для FPD она 866-я. 
VFP в недоумении и потом пишет новые записи в 1251-й.
Необходимо устаноовить у исходных DBF CP866 ( cpzero.prg в дистрибутиве)
Этот модуль запускается с параметрами
DO cpzero WITH filename, codepage

Спасибо GoodMan
Анатолий
10.02.05 08:44:09

Для решения этой проблемы есть установка
SET NOCPTRANS TO <список полей таблицы>

[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика