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

start [/forum/topic.php?fid=41&fpage=309&tid=1593727]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 306ms |

| 0 / 0 |
