powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Кодовая страница
9 сообщений из 9, страница 1 из 1
Кодовая страница
    #33121025
Rusinov St
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, подскажите. Подключаю в проект табличку в DOS-кодировке. Лиса предлагает выбрать кодировку, ставлю 866 - все ОК. Данные в запущенном приложении отображаются нормально. Но если, взять и тупо удалить dbf-ник, а затем скопировать другой (с той же структурой), появляются иероглифы. Как программно установить нужную кодировку? Не будет же юзер сам уточнять кодировку, всякий раз, когда производит замену dbf-файл.
...
Рейтинг: 0 / 0
Кодовая страница
    #33121052
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Кодовая страница
    #33123844
Rusinov St
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теории по ссылки предостаточно, но не более того. Попробую уточнить вопрос: приложение использует таблицы как в Win-кодировке, так и в DOS-кодировке. Проблема с последними. У них вобще отсутствует кодовая страничка (метка). Поэтому возникает вопрос, КАК ПРОГРАММНО ее установить. Автор (по ссылке) лишь указывает на суть проблему и предлагает решение "установить 866 код.страницу" для таких таблиц, - меня интересует КАК (программно).
У пользователя уже есть такие таблички (с неустановленными кодовыми страницами), которые периодически он будет "закидывать" в папку с моим приложением. Поэтому и возник вопрос программной установки 866 код.стр.
...
Рейтинг: 0 / 0
Кодовая страница
    #33123871
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rusinov Stвозник вопрос программной установки 866 код.стр.

Для этого придется программировать на "низком уровне".
В заголовке dbf-файла есть байт, отвечающий за кодовую страницу (вроде бы 29-й по порядку следования). Старые приложения (Clipper, FoxPro до версии 2.6) этот байт не писали (да тогда и Windows не была еще так сильно распространена). Поэтому и возникает проблема...
В общем-то решение простое:
- открыть по fopen() dbf-файл;
- считать 29 байт при помощи функции fread(). Если он не равен 0, то не проводить конвертацию. Если же он равен 0, то установить его в нужное состояние (конкретное значение этого байта можно посмотреть в файлах, сконвертированных Фоксом в автоматическом режиме) при помощи функции fwrite();
- закрыть файл при помощи fclose().
- открыть файл стандартно при помощи use и наслаждаться...
...
Рейтинг: 0 / 0
Кодовая страница
    #33123874
Rusinov St
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, большое спасибо!
...
Рейтинг: 0 / 0
Кодовая страница
    #33123960
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все намного проще.

В стандартной поставке VFP есть прога: CPZERO.prg

Она переустанавливает кодовую страницу.
...
Рейтинг: 0 / 0
Кодовая страница
    #33124052
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maltsev MaxВсе намного проще.
В стандартной поставке VFP есть прога: CPZERO.prg
Она переустанавливает кодовую страницу.
... используя для этого как раз тот самый, описанный Станиславом C., механизм. ;-)
...
Рейтинг: 0 / 0
Кодовая страница
    #33124054
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rusinov StТеории по ссылки предостаточно, но не более того. Попробую уточнить вопрос: приложение использует таблицы как в Win-кодировке, так и в DOS-кодировке. Проблема с последними. У них вобще отсутствует кодовая страничка (метка). Поэтому возникает вопрос, КАК ПРОГРАММНО ее установить. Автор (по ссылке) лишь указывает на суть проблему и предлагает решение "установить 866 код.страницу" для таких таблиц, - меня интересует КАК (программно).
А ты не заметил в этой статье упоминание о такой программке CPZERO.PRG?

DO (home()+"TOOLS\CPZERO\CPZERO.prg") with "MyTable.dbf",866
...
Рейтинг: 0 / 0
Кодовая страница
    #33203048
Rusinov St
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, заметил)
Уже давно разобрался. Большое всем спасибо!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Кодовая страница
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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