:: Visual Foxpro, Foxpro for DOS
нечитаемые символы в поле таблицы
visiter
Автор

Сообщений: 17
Откуда: Barreiro
Дата регистрации: 26.10.2008
Не могу ввести в поле таблицы русский текст. Вводятся нечитаемые символы. На запросы
?cpdbf()
?cpcurrent()
получаю 1251. (На компе установлена OS на португальском языке). помогите пожалуйста
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
Владимир Максимов

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
Функция

?SYS(2019)

должна вернуть имя файла конфигурации Config.fpw (это обычный текстовый файл) и в этом текстовом файле должна быть строка

CODEPAGE=1251

Если эта функция вернет пустую строку, то этот файл надо создать, записать в нем указанную строку и подключить. Как подключать, описано здесь

Часть букв при вводе заменяются латинскими

Кстати, какая версия FoxPro?

Да, надеюсь, ввод осуществляется шрифтом, который имеет русскую кодовую страницу? А если версия FoxPro VFP8 или старше, то у объектов формы стоит настройка FontCharSet = 204 - Cyrilic.

Дело в том, что по умолчанию, FontCharSet = 1 - Default. Т.е. используется набор символов операционной системы. Раз ОС португальская, то, скорее всего, и FontCharSet выставлен в португальский.



Исправлено 1 раз(а). Последнее : Владимир Максимов, 26.10.08 20:51
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
visiter
Автор

Сообщений: 17
Откуда: Barreiro
Дата регистрации: 26.10.2008
Уважаемый Владимир. Очень благодарна Вам за помощь, хотя проблему пока не решила.

На запрос SYS(2019) - получаю С:\FOXPRO6\config.fpw и в этом файле есть строка CODEPAGE=1251 .

Exe - файл я не создаю, так как FoxPro у меня не лицензионный и не дает такой возможности.
( Свои программы я запускаю так - C:\FOXPRO6\VFP6.EXE C:\Guias\zast.prg - настройка ярлыка.
а программа zast.prg запускает главную форму . Это подразумевает что папка FOXPRO6 должна находиться на комп. пользователя. )

Вам это может показаться ненормальным, но таким способом я создала три комплекса программ - "Бюджет" (Учет всех расходов и приходов фирмы), "Материалы" - (их движение и остаток на складе) и "Контроль производства" (выч.времени операций, призводительности труда, себестоимости производства,...). Их недостаток тот, что они не работают в сети но, этого пока не требуется, хотя желательно.
(Весь интерфейс и данные на португальском.)

Для себя я хочу создать программу для хранения выученной французской лексики, сортировки по урокам, типам речи, и т.п.
Поэтому мне необходимо в одной таблице хранить французский текст и его перевод на русский, и если возможно то и на португальский - для моих португальских коллег =). Каждый язык имеет свои специфические символы.

Прошу прощения за отступление.

С этим FOXPRO 6-й версии я работала раньше под русским Windows. И для задач на русском языке все было нормально.
Потом я скопировала этот FOXPRO на комп. с португальской OS Windows XP и теперь в таблицу не могу ввести русский текст - все символы нечитабельны. Правда в файлы prg я могу вносить комментарий на русском, а в txt - уже нет.

Как узнать имеет ли шрифт русскую кодовую страницу ? У меня выбран Courier.
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
Pliskin

Сообщений: 2959
Откуда: Новосибирск
Дата регистрации: 19.11.2003
На компе есть поддержка русского языка?
Шрифт содержит руский набор символов?
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
ry

Сообщений: 2113
Дата регистрации: 24.09.2007
visiter
Как узнать имеет ли шрифт русскую кодовую страницу ? У меня выбран Courier.
Если не путаю, то русские символы в ASCII-секции (коды 33-255) имеются только в трех стандартных виндовских шрифтах: Arial, Courier New, Times New Roman. В шрифте Courier (без New) русских символов может и не быть.
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
ry

Сообщений: 2113
Дата регистрации: 24.09.2007
visiter
Как узнать имеет ли шрифт русскую кодовую страницу ? У меня выбран Courier.
Если не путаю, то русские символы в ASCII-секции (коды 33-255) имеются только в трех стандартных виндовских шрифтах: Arial, Courier New, Times New Roman. В шрифте Courier (без New) русских символов может и не быть.
visiter
Правда в файлы prg я могу вносить комментарий на русском, а в txt - уже нет.
Посмотрите, какие шрифты используются для отображения текста в "Блокноте" и в окне редактора кода VFP.
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
Владимир Максимов

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
visiter
Exe - файл я не создаю, так как FoxPro у меня не лицензионный и не дает такой возможности.

Физическая возможность создания EXE от факта наличия лицензии никак не зависит. Лицензия в отношении FoxPro - это "соглашение джентельменов". Т.е., хотя физическая возможность сделать нечто есть, но, по договору (по лицензии) я этого делать не буду.

EXE создается только и исключительно из предварительно созданного файла проекта. В окне проекта будет доступна кнопка BUILD, которая и создаст EXE. Или можно воспользоваться командой "BUILD EXE" для программного создания.

Но, у вас, скорее всего, проблема именно в используемых шрифтах. У VFP6 еще не было настройки FontCharSet.

Щелкните правой клавишей мыши в окне PRG, где вы можете набирать русский текст и выберите в открывшемся меню пункт Properties. Посмотрите в этом окне какой используется шрифт.
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
ry
В шрифте Courier (без New) русских символов может и не быть.
Скорее всего так и есть на установленной системе.
Поскольку шрифт "Courier New" - содержится в файлах вида: cour*.ttf, лежащих в C:\WINDOWS\FONTS\ и представляющих из себя юникодовский (т.е. универсальный) набор шрифтов, а шрифт просто "Courier" - в файлах вида cour*.fon, содержащих системные шрифты для данной локализации.

А вообще имеет смысл поискать для использования более позднюю версию фокспро - лучше всего VFP9.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
ry
Если не путаю, то русские символы в ASCII-секции (коды 33-255) имеются только в трех стандартных виндовских шрифтах: Arial, Courier New, Times New Roman.
Как таковых "кодов 33-255" в Windows XP уже нет (любая буква определяется в юникодовском формате 4-6 байт), как и "ASCII-секция" понятие уже чисто условное. При любой активной кодовой странице для использования внутри VFP "коды ASCII" просто эмулируются в ее среде, в соответствии с параметрами этой страницы (возможно еще, если данная версия VFP это дело поддерживает, насчет 6 версии не уверен). Т.е. любой юникодовский шрифт уже изначально содержит любую кодовую страницу из официально принятого международного набора кодовых страниц. Другое дело, что некоторые специфические шрифты, устанавливаемые с другими программами (помимо первоначального виндоузского набора шрифтов) могут и не содержать полного комплекта кодовых страниц.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)




Исправлено 1 раз(а). Последнее : Crispy, 29.10.08 13:09
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
ry

Сообщений: 2113
Дата регистрации: 24.09.2007
Можно попробовать просмотр таблицы с разными шрифтами через BROWSE ... FONT ..., или через грид, например.
Можно еще попытаться поэкспериментировать с настройками самой системы:
1) в Панели управления в аплете "Язык и региональные стандарты" на вкладке "Дополнительно" установить "Русский" для программ, не поддерживающих юникод;
2) либо использовать более жесткий вариант (но реально во многих случаях помогающий) с заменой кодовых страниц в реестре с 1252 на 1251.
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
visiter
Автор

Сообщений: 17
Откуда: Barreiro
Дата регистрации: 26.10.2008
Pliskin
На компе есть поддержка русского языка?
Шрифт содержит руский набор символов?

Да, потому что в документы Word, Exel, prg of FoxPro я могу вводить русский текст. Да и это сообщение я пишу с комп-ра о котором шла речь - с португальской ОС.
(Как посмотреть, содержит ли шрифт русские символы ? )
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
visiter
Автор

Сообщений: 17
Откуда: Barreiro
Дата регистрации: 26.10.2008
Владимир Максимов

Но, у вас, скорее всего, проблема именно в используемых шрифтах.
Щелкните правой клавишей мыши в окне PRG, где вы можете набирать русский текст и выберите в открывшемся меню пункт Properties. Посмотрите в этом окне какой используется шрифт.

В окне редактора PRG используется шрифт Courier New. В основном окне FoxPro которое запускается в результате выполнения vfp6.exe был выбран Courier. Но когда я поменяла его на Courier New (Format --> Font) - ничего не изменилось - русский текст в поле таблицы не вносился.
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
visiter
Автор

Сообщений: 17
Откуда: Barreiro
Дата регистрации: 26.10.2008
Уважаемый "ry". Для объекта Grid с русским текстом я задавала разные шрифты, но текст прочитать не могла.

Но Ваше предложение п.1) решило проблему на 95 %.

ry
Можно еще попытаться поэкспериментировать с настройками самой системы:
1) в Панели управления в аплете "Язык и региональные стандарты" на вкладке "Дополнительно" установить "Русский" для программ, не поддерживающих юникод;

Я сделала это, перезагрузила комп, запустила Fox и не поверила своим глазам !- у меня в таблице русский текст!
Но зато португальский или французский текст в другое поле таблицы я ввести уже не могу. (Вернее не могу ввести буквы, отсутствующие в англ. алфавите . Например, португальские буквы - ç ã ó é - не знаю можете ли вы их прочитать)

Кроме того есть проблема - когда я набираю русский текст - все хорошо, но после того как я нажала Enter -
буква г поменялась на a
буква р поменялась на d
вместо говорить в таблице сохранилось aовоdить, а все остальное вроде бы хорошо.

Итак, мы имеем русский текст под порт-ю ОС.

Задача будет решена если я смогу ввести французский и русский тексты в два поля одной таблицы.
Итересно возможно ли это ?
Так как задача пишется в помощь изучению языку, вводить французский без его спец. символов не имеет смысла.
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
visiter
Автор

Сообщений: 17
Откуда: Barreiro
Дата регистрации: 26.10.2008
(Интересно что когда теперь я в меню главного окна выбираю Font --> Type то внизу диалогового окна выбора шрифта всегда появляется сообщение - Используется тип шрифта Open Type. На экране и на печати.)



Исправлено 1 раз(а). Последнее : visiter, 30.10.08 03:59
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
Владимир Максимов

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
visiter
В окне редактора PRG используется шрифт Courier New. В основном окне FoxPro которое запускается в результате выполнения vfp6.exe был выбран Courier. Но когда я поменяла его на Courier New (Format --> Font) - ничего не изменилось - русский текст в поле таблицы не вносился.

А при чем здесь главное окно? Ввод/вывод осуществляется в объектах формы. TextBox, EditBox и т.п. Вот у этих объектов и надо менять значение свойства FontName.
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
visiter
Задача будет решена если я смогу ввести французский и русский тексты в два поля одной таблицы.
Итересно возможно ли это ?

Для обычной таблицы фокспро с использованием обычных методов - нет.

visiter
Например, португальские буквы - ç ã ó é - не знаю можете ли вы их прочитать)

В русском языке при установленной кодовой странице 1251 в фокспро - это буквы "згуй". Т.е. поскольку внутри фокспро используется "как бы ASCII" - непосредственно сохраняться в таблице будут либо русские буквы, либо эти спецбуквы. Поэтому строго говоря "вместе" сохранять их не получится.

Но решение тем не менее вполне даже возможно и оно в принципе для данной задачи достаточно простое, причем совсем не затрагивающее глобальные настройки Windows. Заключается же в том - что не обращать внимания, как именно будут храниться символы - главное, чтобы они правильно отображались в рабочем окне программы. Думаю, что скорее всего это решение и единственное для данного случая.

А для этого надо:
1) во-первых, вернуть назад виндоузские настройки с поддержкой языков, не поддерживающих юникод - это для данного случая не подходит.
2) отказаться от использования BROWSE, используя для ввода и просмотра в программе форму с GRID.
3) для русской колонки при этом использовать шрифт, показывающий нормально русские буквы, для французской - шрифт, показывающий французские буквы.
Само собой в таблице при просмотре через BROWSE все будет храниться и отображаться возможно и в совсем другом виде. Но насколько понимаю - главное ведь, чтобы при работе в самой программе, вводе и просмотре, все отображалось нормально? (т.е. все будет работать через GRID, показывающий нормально оба языка)
Если возникнет желание пойти по такому пути, могу уточнить, как именно выбирать шрифты, какие и т.п. Потому что тут есть небольшие нюансы.

Только вот такой вопрос непонятен - в "нормальном" состоянии системы (т.е. еще до изменений с языками) какие буквы верно отображались при вводе-просмотре через окно BROWSE - английские, французские, русские - при разных переключениях раскладки клавиатуры? Т.е. французские хотя бы отображались? Или из них только лишь общие латинские символы с квадратиками вместо спец.букв?


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
ry

Сообщений: 2113
Дата регистрации: 24.09.2007
Согласен с описанием решения задачи в предыдущем посте Crispy, только, видимо, дополнительно надо установить SET NOCPTRANS для полей, в которых будет хранится текст.
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
leonid

Сообщений: 3204
Откуда: Рига
Дата регистрации: 03.02.2006
Кодовую страницу Windows надо оставить как и было 1252, а то другим программам плохо будет. Для хранения русского текста использовать поля Character(Binary) и Memo(Binary), чтобы русский текст не подвергался перекодировке кодовой страницей. Для объектов на форме (textbox, editbox), где текст должен показываться на русском языке, использовать прилагаемый шрифт MS Sans Seruf. Для распечатки отчетов на русском использовать прилагаемый шрифт ArialCyr. Если нужен русский язык в объектах типа label на формах и в отчетах, то придется файлам форм и отчетов поменять кодовую страницу (наверное лучше всего на 0) с помощью утилиты cpzero.
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
visiter
Автор

Сообщений: 17
Откуда: Barreiro
Дата регистрации: 26.10.2008
Cделала как вы сказали :
1) Вернула настройки Windows
2) Для ввода и просмотра использую форму с Grid
3) Для русских колонок таблицы использую шрифт Сourier New

Имею ту же ситуацию которая была до изменений - русский текст в таблице не читается (

До изменений с языками французский текст я могла вводить в поле без проблем, так как его спец. буквы совпадают с португальскими. Если вы посмотрите французский алфавит - в нем все буквы латинские, но в словах используются буквы которых там нет (например франузские слова : урок - leçon
готовый - prêt
ученики - élèves )
- в них спец. буквы те же что и в португальском.

Итак, у меня прежняя ситуация - под португальскую OS в таблицу FoxPro я могу вводить франц. и порт. тексты а русский - отображается нечитабельно.

Т.е. русский текст и сохраняется и отображается неправильно.



Исправлено 3 раз(а). Последнее : visiter, 02.11.08 11:57
Ratings: 0 negative/0 positive
Re: нечитаемые символы в поле таблицы
visiter
Автор

Сообщений: 17
Откуда: Barreiro
Дата регистрации: 26.10.2008
leonid
Кодовую страницу Windows надо оставить как и было 1252. Для хранения русского текста использовать поля Character(Binary)

Создала таблицу с полем Character(Binary), но ситуация та же - русский текст нечитабелен.

На форме создала объект текст, задала для него посланный вами и установленный шрифт MS Sans Seruf - и при просмотре и при хранениии вместо букв - вертикальные линии !



Исправлено 1 раз(а). Последнее : visiter, 02.11.08 12:15
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 25 (Гостей: 25)

© 2000-2024 Fox Club 
Яндекс.Метрика