powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с кодировкой
11 сообщений из 11, страница 1 из 1
Помогите с кодировкой
    #33501758
Puncher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прога написана в VFP8, делает выборку из DOS таблиц, при запуске из среды VFP всё нормально., после компиляции в EXE - перестаёт правильно отображать кодировку полей таблиц (((.
Я хочу спросить, как явно при окрытии таблицы указать кодировку???
...
Рейтинг: 0 / 0
Помогите с кодировкой
    #33501825
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://forum.foxclub.ru/read.php?32,177189,177216#msg-177216
...
Рейтинг: 0 / 0
Помогите с кодировкой
    #33501846
S866
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обработайте Досовые таблицы программой cpzero.prg с указанием 866 страницы.
но имейте в виду что при модификации таблиц из досового фокса их опять надо обрабатывать cpzero - просто досовый фокс обнуляет байт кодовой страницы в заголовке - а Visual foxpro считат текущую кодовую (по умолчанию 1251 если не прописано в config)

я у себя в программах делаю так - чтобы не трогать оригинальные DOS таблицы
которые одновременно открыты по сети досовыми пользователями.
1. выборку из ДОС таблицы во временную таблицу
2. Временную таблицу обрабатываю cpzero
3. работа уже с временной таблицей.

кстати на форуме про кодовые таблицы уже много говорилось.
...
Рейтинг: 0 / 0
Помогите с кодировкой
    #33501975
Puncher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо друзья!!!
После того как в config.frw установил CODEPAGE=AUTO - пошептало!!!
...
Рейтинг: 0 / 0
Помогите с кодировкой
    #33501983
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S866Обработайте Досовые таблицы программой cpzero.prg с указанием 866 страницы.
но имейте в виду что при модификации таблиц из досового фокса их опять надо обрабатывать cpzero - просто досовый фокс обнуляет байт кодовой страницы в заголовке - а Visual foxpro считат текущую кодовую (по умолчанию 1251 если не прописано в config)

я у себя в программах делаю так - чтобы не трогать оригинальные DOS таблицы
которые одновременно открыты по сети досовыми пользователями.
1. выборку из ДОС таблицы во временную таблицу
2. Временную таблицу обрабатываю cpzero
3. работа уже с временной таблицей.

кстати на форуме про кодовые таблицы уже много говорилось.

Ну это Вы зря

Код: plaintext
SELECT CPCONVERT( 866 , 1251 ,MyCharField) as MyCharField FROM MyTable

аналогично

Код: plaintext
INSERT () VALUES(CPCONVERT(...)....)
...
Рейтинг: 0 / 0
Помогите с кодировкой
    #33502147
S866
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 PaulWist
так в селекте мне придется все поля текстовые перечислять. а их может быть 10-20 не очень охота кнопки на клавиатуре портить.
а так
cpzero with '...dbf',866
и все.
а вобще кто как привык.
не думаю что cpzero сильно замедлит мою программу.
...
Рейтинг: 0 / 0
Помогите с кодировкой
    #33502371
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S866

Вопрос не в том быстрее или медленнее, вопрос в том, что CPZERO требует монопольного открытия файла - это во первых, во вторых курсор в отличии от таблицы не требует безусловного удаления.
...
Рейтинг: 0 / 0
Помогите с кодировкой
    #33502880
S866
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 PaulWist
Код: plaintext
вопрос в том, что CPZERO требует монопольного открытия файла
вот именно по этому я и делаю выборку во временную таблицу на локальном диске - "лучше день потерять за то потом за 5 мин. долететь" - из м.ф. "Крылья ноги и хвосты"
кстати - естественно модификацию в исходных данных я не делаю - по этому вопрос о ней отпадает сразу.
а работа с локальным файлом в эксклюзивном режиме - вся обработка потом летает.
Код: plaintext
во вторых курсор в отличии от таблицы не требует безусловного удаления.
так и временную таблицу удалять тоже необязательно - при теперешних HDD на сотни гигабайт - это допустимо.
опят же при повторном Selectе в эту же таблицу она затирается.

при огромных исходных DOS таблицах - мой подход неприемлем это я прекрасно понимаю. только я не встречал досовых таблиц более 1Мб.
...
Рейтинг: 0 / 0
Помогите с кодировкой
    #33506325
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi S866!

Я как ленивый программист и не подумал бы прописывать более 10-ка полей в
CPCONVERT() руками - нарисовал бы утилитку, тем более что AFIELDS никто не
отменял... Причём можно это и как DesignTime утилиту сделать (которая
создаст строку команды и в _CLIPTEXT её поместит), так и RunTime функцию -
которая через макро выполнит команду.

> так и временную таблицу удалять тоже необязательно

Проблема может быть в том, что данные надо сохранить в постоянной таблице -
а это значит 2действия - сначала в tmp закачили, потом поменяли CP и наконец
оттуда в основную закачали...

> при огромных исходных DOS таблицах - мой подход неприемлем это я прекрасно
> понимаю. только я не встречал досовых таблиц более 1Мб.

Повезло однако :(

Кстати ни досовый фокс (по крайней мере 2.5 и больше, но говорят и 2.0
тоже), ни тем более FPW не затирает CPByte - этим "славятся" Clipper
программы :( Кстати dbu (старая утилита правки dbf-ов) помимо всего прочего
иногда помещают "мусор" в те части заголовка, который она "не знает" -
особенно прикольно было когда мусор попал в подзаголовки полей - там где
нынче хранится "смещение от начала записи до начала поля" - некоторые
программы/утилиты (вроде генератора rtf отчётов) просто умирали или работали
некорректно. Долго кстати мучались пока поняли где беда.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите с кодировкой
    #33506512
S866
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Igor Korolyov
из foxpro 2.5 for DOS при команде pack - только что попробовал - обнуляется кодовая страница - и это понятно - таблица заново создается.
при простом browse не обнуляется.

а насчет утилитки - спасибо за совет надо будет заняться.

насчет
Код: plaintext
1.
2.
Проблема может быть в том, что данные надо сохранить в постоянной таблице -
а это значит 2действия - сначала в tmp закачили, потом поменяли CP и наконец 
оттуда в основную закачали...

я же уточнил что исходные данные мне менять не надо - иначе бы я поступал другими способами. мне просто выборки на просмотр для отчетов и анализа.
насчет dbf по 1 мб - просто те DOS программы из которых берутся данные - там организация данных по месячно (бухгалтерия) -не я придумал такую организацию так что за 1 мес. больше 1мб практически не бывает.
...
Рейтинг: 0 / 0
Помогите с кодировкой
    #33509170
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi S866!

FPD2.6a - ничего не обнуляет. В конфиге конечно прописано CODEPAGE=866
При создании таблицы, если в конфиге не прописано вообще CODEPAGE - то
наверное он и в таблицу не пропишет - иначе без проблем. Думаю что и в
FPD2.5 должно быть так-же (в документации не написано что это нововведение
именно этой версии).

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с кодировкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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