Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / и снова кодировка (опытным) / 8 сообщений из 8, страница 1 из 1
14.02.2007, 12:26
    #34329819
и снова кодировка (опытным)
клиперовская таблиц, впрочем это не важно,
кодировка таблицы - 0 и менять ее нельзя

можно ли нормально как-то работать с таблицей (без cpconvert) под VFP 9 ?
никакие codepage в конфиге не помогают
Очень надеюсь на консультацию.
...
Рейтинг: 0 / 0
14.02.2007, 12:36
    #34329871
и снова кодировка (опытным)
Каменнов В.клиперовская таблиц, впрочем это не важно,
кодировка таблицы - 0 и менять ее нельзя
Почему это?
Много работал с Клиппером и Фоксом (правда ДОСовским). Никаких проблем с указанием кодовой страницы в заголовке при работе в Клиппере не возникало... Ибо он (Клиппер) на кодовую страницу не смотрит...
...
Рейтинг: 0 / 0
14.02.2007, 12:39
    #34329893
и снова кодировка (опытным)
сам не работал, но сказали что возникают какие-то сбои в операция подсчета записей и т.п.
Это не так ?
...
Рейтинг: 0 / 0
14.02.2007, 13:35
    #34330168
sergej_57
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и снова кодировка (опытным)
Клиппер понимает только дос(866), а фокс 9.0 только виндовс(1251), поэтому при тех видах обработки таблиц, связанных с перезаписью (допустим добавление данных) признак кодовой таблицы будет стерт в клиппере. Перед началом открытия фоксе надо контролировать наличие кодовой метки в заголовке и при необходимости ее восстанавливать. Прога cpzepo есть в фоксе. Она прописывает метку не трогая содержание полей. А вот в таблицу дос добавлять текстовые поля из под виндовса надо через конвертацию. Проблема может быть в индексах по текстовым полям.
...
Рейтинг: 0 / 0
14.02.2007, 14:27
    #34330445
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и снова кодировка (опытным)
Каменнов В.сам не работал, но сказали что возникают какие-то сбои в операция подсчета записей и т.п.
Это не так ?
Признак кодовой страницы - это содержимое 29 байта заголовка таблицы. И все. Больше никаких изменений. Clipper просто не работает с содержимым этого байта, поэтому никаких конфликтов возникнуть в принципе не может.

Однако следует иметь в виду, что ряд операций в Clipper может привести к очистке этого байта. Какие именно операции - не знаю. Вероятно, это операции по пересозданию файла.

Другими словами, просто установи признак 866 кодовой страницы. Проблем быть не должно:

Код: plaintext
DO (Home()+"Tools\CPZero\CPZero.prg") WITH "MyTab.dbf", 866 

Но при каждом открытии в FoxPro надо все-равно контролировать факт наличия этого признака, поскольку он может оказаться удаленным.

Хотя, есть еще функция CPConvert() при помощи которой можно конвертировать данные из разных кодовых страниц. Но уж больно это утомительно, поскольку надо явно конвертировать ВСЕ текстовые данные.
...
Рейтинг: 0 / 0
14.02.2007, 15:46
    #34330821
novik_one
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и снова кодировка (опытным)
ВладимирМ
Признак кодовой страницы - это содержимое 29 байта заголовка таблицы. И все. Больше никаких изменений. Clipper просто не работает с содержимым этого байта, поэтому никаких конфликтов возникнуть в принципе не может.

Однако следует иметь в виду, что ряд операций в Clipper может привести к очистке этого байта. Какие именно операции - не знаю. Вероятно, это операции по пересозданию файла.



Добавление записей очищает этот байт.
Ну и cpzero на открытых таблицах не работает :(
...
Рейтинг: 0 / 0
14.02.2007, 18:51
    #34331413
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и снова кодировка (опытным)
novik_oneДобавление записей очищает этот байт.
Не знал. Если это так, то Clipper создавали жуткие перестраховщики. Модифицировать данные, которые не участвуют в операции и вообще не имеют к операции никакого отношения - это надо иметь определенный склад характера.
...
Рейтинг: 0 / 0
15.02.2007, 10:22
    #34332312
sergej_57
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
и снова кодировка (опытным)
Просто во времена создания клиппера был один дос, и поэтому как записал так и прочитал в одной системе. Записал на русском(866) и прочти на русском(866). И анализировать 29 байт не было необходимости. Можно добавлять этот байт и в клиппере после перезаписи заголовка, только надо обязательно закрывать файл ибо запись ведется на низком уровне, а он оперирует только с заранее закрытыми файлами. А если 29 байт будет пустым, то фокс откроет окно и предложит его заполнить вручную. Можно пооробовать перехватить эту ошибку и заполнять его.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / и снова кодировка (опытным) / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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