|
|
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
Я начинающий программист в VFP 9.0 . Поетому прошу отвечать по возможности очень доступно объясняя все мелочи (я могу их не знать). СПАСИБО ЗА ВНИМАНИЕ И ОТВЕТЫ. Вопрос такой. Перекодировал базу в 866 кодировку, с базой весь день работают из разных прог восновном из FP 2.6 и вот однажды (гдето месяц прошел после перекодировки) кодировка вернулась в 0 по необъяснимым причинам. Вопросов два как автоматом перекодировать базы при входе в программу (чтобы не выскакивало окно с выборам кодировок а само выбиралось 866 и как-будто ничего не произошло) Пробовал команду COPY TO но ето не то. Второе: как я понял кодовая страница прописывается в заголовок файла - можно узнать куда и как жестко ее туда прописать чтобы она не слетала. Вопросы может и глупые но злободневные для меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 16:16 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
FPD 2.6 иногда может снять кодировку при монопольных операциях (INDEX, PACK, ZAP) Я утилиткой пользуюсь y-mail: y-mail /dcp866 папка - проставляет всем DBF в папке кодовую страницу 866 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 16:32 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
Программа из состава поставки FPD/VFP: CPZERO.PRG Находиться в директории установки ФОКСА ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 16:52 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
Чтобы кодировка не слетала, нужно указывает для FFP2.6 в CONFIG.FP: codepage=auto а для VFP (особенно под WINDOWS XP): codepage=1251 XP почему-то не всегда правильно устанавливает кодовую страницу, иногда CPCURRENT() дает 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 17:19 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за ответы завтра буду пробовать(сення рабочий день закончился :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 17:29 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
кодировка таблицы храниться в 29 байте кажеться это 30-я позиция в любом 16-м редакторе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 21:05 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
А может, прежде чем заниматься шаманством, выяснить таки причину обнуления? Или есть какие-то основания ожидать самоустранения таких причин? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 21:25 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
Я утилиткой пользуюсь y-mail: y-mail /dcp866 папка - проставляет всем DBF в папке кодовую страницу 866[/quot] А можно поконкретнее куда утилиту надо копировать как запускать из программы или нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 09:21 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
Sea_CatЧтобы кодировка не слетала, нужно указывает для FFP2.6 в CONFIG.FP: codepage=auto а для VFP (особенно под WINDOWS XP): codepage=1251 XP почему-то не всегда правильно устанавливает кодовую страницу, иногда CPCURRENT() дает 0 А где ето (путь можно узнать). И еще ето я понимаю надо на каждом компьютере пользователя делать, тогда ето не выход у нас пользоватоелей около 200. Я бы хотел чтобы может так было например база с кодировкой 0 а у меня в программе она или ее курсор переводится в 866 ето помоему решает проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 09:26 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
AleksMedПрограмма из состава поставки FPD/VFP: CPZERO.PRG Находиться в директории установки ФОКСА Мне как раз наоборот не обнулять кодировку надо а выставить ее железно чтобы не слетала. Либо както перекодировать прямо в моей программе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 09:28 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
leafкодировка таблицы храниться в 29 байте кажеться это 30-я позиция в любом 16-м редакторе Я программист начинающий . учился не не программиста вообще поетому можно конкретнее как в 29 байт чето записать и что за 16-м редактор(пример если можно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 09:31 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
проходящийА может, прежде чем заниматься шаманством, выяснить таки причину обнуления? Или есть какие-то основания ожидать самоустранения таких причин? Так етим я и мои коллеги сразу и начали заниматься. Оказалось что есть несколько причин одна из которых переиндексация таблиц, другие неизвестны. Но независимо от того что переиндексация может сбросить кодировку нужных мне баз ее делать все равно будут - поетому мне надо искать какойто обходной путь и готовиться к тому что кодировка будет слетать переодически. Например перекодировать прямо у меня в программе (всю таблицу ее курсор или по записям ) . Пробовал CPCONVERT() но она одни ероглифы переводит в другие независимо в какую кодировку запись перекодирую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 09:39 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
2 Alex-ZZZ: Батенька, мне очень сильно кажется, что у Вас ещё каша в голове по поводу кодировок. Изменение кодовой страницы таблицы и перекодировка информации в таблице - две очень большие разницы. Кодовая страница таблицы всего лишь указание считать данные в таблице сохраненными в такой кодировке. В какой кодировке они сохранены действительно - совершенно другой вопрос. Правильно прочитать , не говоря уж о последующей конвертации, данные можно только при совпадении номера кодовой страницы из заголовка файла и кодовой страницы, в которой сохранены данные. Определение в каком байте записана кодовая страница, писание собственной программы по заполнению этого байта и т.п. - пустая трата времени, ибо CPZERO идет в поставке фокса и ничего кардинально отличного от нее пока ещё не написал и наврядли напишет. Если действительно сбивается только кодовая страница файла и кодировка данных в файле действительно 866, то достаточно написать Код: plaintext и не изобретать велосипед. Но я все равно еще раз порекомендую разобраться с причинами. Индексация сама по себе не сбрасывает кодовую страницу ибо она к ней имеет очень косвенное отношение и просто не имеет к этому средств. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 09:57 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
Sergey Sizov2 Alex-ZZZ: Батенька, мне очень сильно кажется, что у Вас ещё каша в голове по поводу кодировок. Изменение кодовой страницы таблицы и перекодировка информации в таблице - две очень большие разницы. Кодовая страница таблицы всего лишь указание считать данные в таблице сохраненными в такой кодировке. В какой кодировке они сохранены действительно - совершенно другой вопрос. Правильно прочитать , не говоря уж о последующей конвертации, данные можно только при совпадении номера кодовой страницы из заголовка файла и кодовой страницы, в которой сохранены данные. Определение в каком байте записана кодовая страница, писание собственной программы по заполнению этого байта и т.п. - пустая трата времени, ибо CPZERO идет в поставке фокса и ничего кардинально отличного от нее пока ещё не написал и наврядли напишет. Если действительно сбивается только кодовая страница файла и кодировка данных в файле действительно 866, то достаточно написать Код: plaintext и не изобретать велосипед. Но я все равно еще раз порекомендую разобраться с причинами. Индексация сама по себе не сбрасывает кодовую страницу ибо она к ней имеет очень косвенное отношение и просто не имеет к этому средств. Да Вы правы я про кашу. И так как ваш совет мне не помог (do cpzero with 'YourDbfFile', 866) я понимаю что у меня данные в таблице сохранены в какойто левой кодировке (подозреваю что 0 так как вносятся они из прог написанных под fp2.5 ). Но тогда у меня вопрос такой - как изменить кодировку данных в таблице и кодовую страницу таблицы и как ето отразится на тех кто работает с етой базой из под FP2.5 (не будут ли у них отображатся ероглифы), и что будет с данными которые будут втосить пользователи FP2.5 в мою новую полностью перекодированную таблицу в какой кодировке будут эти данные. И нужно ли ето вообще может достаточно менять кодовую страницу таблицы и все должно работать ( на другой работе я так и делал 1 год все работало нормально, ничего не слетало). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 11:02 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
Alex-ZZZ А можно поконкретнее куда утилиту надо копировать как запускать из программы или нет можешь прямо в папку с DBF скопировать. Создай ярлык, в него только ключ допиши в строку запуска y-mail.com /dcp866 и запускай. Можешь запуск вотнуть куда угодно (автозагрузка, планировщик, в свою прогу), только утилита чисто досовая, сетевых путей не понимает (типа \\server\resurs\). И в момент запуска необходимо чтобы никто DBF не держал открытой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 18:45 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
Да Вы правы я про кашу. И так как ваш совет мне не помог (do cpzero with 'YourDbfFile', 866) Что значит "не помог"? Не проставил кодовую страницу? Или не показались корректные данные?я понимаю что у меня данные в таблице сохранены в какойто левой кодировке (подозреваю что 0 так как вносятся они из прог написанных под fp2.5 ). Опять каша. Что за 0-ая кодировка? Где взял? Почему решил, что fpd2.5 не знает о кодовых страницах? Сама прога настроена правильно? В config.fp у проги есть строка, начинающаяся на CODE? И если есть, то что в ней после знака равенства? AUTO? или 866? или еще что-то? Но тогда у меня вопрос такой - как изменить кодировку данных в таблице и кодовую страницу таблицы и как ето отразится на тех кто работает с етой базой из под FP2.5 (не будут ли у них отображатся ероглифы), и что будет с данными которые будут втосить пользователи FP2.5 в мою новую полностью перекодированную таблицу в какой кодировке будут эти данные. И нужно ли ето вообще может достаточно менять кодовую страницу таблицы и все должно работать ( на другой работе я так и делал 1 год все работало нормально, ничего не слетало). По моему глубокому убеждению, прежде чем начать что-то где-то изменять надо хорошенько разобраться в этом "что-то". Пока что наблюдаю гадание на кофейной гуще и попытки налепить побыстрее какую-нибудь заплатку. Хотя последние вопросы и мысли уже направляются в том направлении, которое "мне нравится" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 21:04 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
Нараод что так много текста по старой теме. Все уже было написано и сделано. Поиском пользоваться надо. Cpzero.prg и присоедененный к проекту текстовый файл который надо обозвать CONFIG.FPW и внутри него написать одну строчку CODEPAGE=1251, и больше для счасть нечего ненадо. Присоеденяй файл на вкладке Other проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2006, 10:28 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
OMOHНараод что так много текста по старой теме. Все уже было написано и сделано. Поиском пользоваться надо. Cpzero.prg и присоедененный к проекту текстовый файл который надо обозвать CONFIG.FPW и внутри него написать одну строчку CODEPAGE=1251, и больше для счасть нечего ненадо. Присоеденяй файл на вкладке Other проекта. Все ето я проделал и далее сделал так: SELECT OPER.* FROM OPER INTO DBF (OPER1) USE USE (OPER1) ALIAS OPER1 IF CPDBF('OPER1')<>866 DO CPZERO WITH ("OPER1"), 866 ENDIF DDD1=CPDBF('OPER') DDD=CPDBF('OPER1') Как я понимаю DDD должно быть равно 866 но оно = 1251 и все русские буквы в виде ерогльфов. НЕПОНЯТНО . ведь 1251 ето рус.windows. Пробовал проставить кодовою страницу 1251 просто вручную базе (oper.dbf) -ероглифы как и с кодировкой 0. Вопрос что в вышеуказанном коде не так почему не выставилась 866 кодировка и почему 1251 код. отображает ероглифы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2006, 14:14 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
А забыл сказать в CONFIG.FPW CODEPAGE=866 установил т.е. помоему все правильно вроде проделал а все равно ероглифы и 1251 кодировка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2006, 14:19 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
А ты сам хоть понял что написал. Alex-ZZZ Все ето я проделал и далее сделал так: SELECT OPER.* FROM OPER INTO DBF (OPER1) USE USE (OPER1) ALIAS OPER1 Ты из DBF c неправильной кодировкой выбрал все иероглифы в новую DBF которая уже создется с 1251 кодировкой, т.е. иероглифы скопировальсь в правильную кодировку а не преобразовались. И потом эту новую DBFку с 1251 кодировеой пытаешся сконвертить в 866ю кодировку Alex-ZZZ IF CPDBF('OPER1')<>866 DO CPZERO WITH ("OPER1"), 866 ENDIF Ну не бред ли. Cpzero.prg надо конвертить исходную DBF-ку. До подключения ее к проекту. Код: plaintext 1. Ауж потм делать с ней все что захочется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2006, 15:29 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
OMOH Cpzero.prg надо конвертить исходную DBF-ку. До подключения ее к проекту. Код: plaintext 1. Ауж потм делать с ней все что захочется. К сожалению для конвертации утилитой CPZERO нужно открыть базу ексклюзивно, чего я сделать не могу так как с базой постоянно работают. Поетому я и создал новую базу. И мне примерно так в итоге и придется делать только пока не ясно как. Просто захватить базу и поменять код. стр. можно но она постоянно сбрасывается изза использования некоторых команд(например как - pack) в прогах которые тоже работают с етой базой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2006, 15:58 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
Все проблема решена Всем спасибо за советы. Выбрал такое решение: 1) Проверяю кодовую страницу базы на сети (CPDBF) 2) Eсли надо копирую ее себе (COPY TO) 3) Меняю код.стр. (CPZERO.PRG) и работаю уже с копированной базой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2006, 11:54 |
|
||
|
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
|
|||
|---|---|---|---|
|
#18+
А возможно ли в случае если кодовая страница таблицы = 0 , указать драйверу работающему с таблицей(соединение настраивается в ODBC) открывать таблицу в кодировке 866? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2008, 11:20 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34114873&tid=1587726]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 388ms |

| 0 / 0 |
