
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.06.2005, 09:53:35
|
|||
|---|---|---|---|
|
|||
Кодовая страница |
|||
|
#18+
Народ, подскажите. Подключаю в проект табличку в DOS-кодировке. Лиса предлагает выбрать кодировку, ставлю 866 - все ОК. Данные в запущенном приложении отображаются нормально. Но если, взять и тупо удалить dbf-ник, а затем скопировать другой (с той же структурой), появляются иероглифы. Как программно установить нужную кодировку? Не будет же юзер сам уточнять кодировку, всякий раз, когда производит замену dbf-файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.06.2005, 05:24:15
|
|||
|---|---|---|---|
|
|||
Кодовая страница |
|||
|
#18+
Теории по ссылки предостаточно, но не более того. Попробую уточнить вопрос: приложение использует таблицы как в Win-кодировке, так и в DOS-кодировке. Проблема с последними. У них вобще отсутствует кодовая страничка (метка). Поэтому возникает вопрос, КАК ПРОГРАММНО ее установить. Автор (по ссылке) лишь указывает на суть проблему и предлагает решение "установить 866 код.страницу" для таких таблиц, - меня интересует КАК (программно). У пользователя уже есть такие таблички (с неустановленными кодовыми страницами), которые периодически он будет "закидывать" в папку с моим приложением. Поэтому и возник вопрос программной установки 866 код.стр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.06.2005, 06:59:33
|
|||
|---|---|---|---|
|
|||
Кодовая страница |
|||
|
#18+
Rusinov Stвозник вопрос программной установки 866 код.стр. Для этого придется программировать на "низком уровне". В заголовке dbf-файла есть байт, отвечающий за кодовую страницу (вроде бы 29-й по порядку следования). Старые приложения (Clipper, FoxPro до версии 2.6) этот байт не писали (да тогда и Windows не была еще так сильно распространена). Поэтому и возникает проблема... В общем-то решение простое: - открыть по fopen() dbf-файл; - считать 29 байт при помощи функции fread(). Если он не равен 0, то не проводить конвертацию. Если же он равен 0, то установить его в нужное состояние (конкретное значение этого байта можно посмотреть в файлах, сконвертированных Фоксом в автоматическом режиме) при помощи функции fwrite(); - закрыть файл при помощи fclose(). - открыть файл стандартно при помощи use и наслаждаться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.06.2005, 07:11:39
|
|||
|---|---|---|---|
|
|||
Кодовая страница |
|||
|
#18+
Народ, большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.06.2005, 09:10:39
|
|||
|---|---|---|---|
|
|||
Кодовая страница |
|||
|
#18+
Все намного проще. В стандартной поставке VFP есть прога: CPZERO.prg Она переустанавливает кодовую страницу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.06.2005, 10:04:51
|
|||
|---|---|---|---|
Кодовая страница |
|||
|
#18+
Maltsev MaxВсе намного проще. В стандартной поставке VFP есть прога: CPZERO.prg Она переустанавливает кодовую страницу. ... используя для этого как раз тот самый, описанный Станиславом C., механизм. ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.06.2005, 10:05:38
|
|||
|---|---|---|---|
Кодовая страница |
|||
|
#18+
Rusinov StТеории по ссылки предостаточно, но не более того. Попробую уточнить вопрос: приложение использует таблицы как в Win-кодировке, так и в DOS-кодировке. Проблема с последними. У них вобще отсутствует кодовая страничка (метка). Поэтому возникает вопрос, КАК ПРОГРАММНО ее установить. Автор (по ссылке) лишь указывает на суть проблему и предлагает решение "установить 866 код.страницу" для таких таблиц, - меня интересует КАК (программно). А ты не заметил в этой статье упоминание о такой программке CPZERO.PRG? DO (home()+"TOOLS\CPZERO\CPZERO.prg") with "MyTable.dbf",866 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1593727]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
209ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 501ms |

| 0 / 0 |
