powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как можно в Text-е FoxPro печатать UNICOD-ом?
12 сообщений из 12, страница 1 из 1
Как можно в Text-е FoxPro печатать UNICOD-ом?
    #33037161
Sero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужно вводить текст в FoxPro UNICOD-ом. Т.е. если пользователь выбирает в KDWIN-е Russian Phonetic Unicode и в свойствах обьекта Text выбран FontName='Times New Roman' то нужно чтоб печатались нормальные русские буквы. Как сделать ЭТО?Спасибо
...
Рейтинг: 0 / 0
Как можно в Text-е FoxPro печатать UNICOD-ом?
    #33037191
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/159842&hl=unicode#1319669
...
Рейтинг: 0 / 0
Как можно в Text-е FoxPro печатать UNICOD-ом?
    #33038996
Sero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извените пожалуыста, но не могли бы ВЫ маленько обьяснить как мне использовать текст изложенный в этой /topic/159842&hl=unicode#1319669 статье в моем случае, т.е. в grid-e или text-е?
...
Рейтинг: 0 / 0
Как можно в Text-е FoxPro печатать UNICOD-ом?
    #33039191
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Легко ;-)

1. VFP не поддерживает UNICODE сам по себе (поддерживает минимально). Нужны извращения.
2. Функция STRCONV() с параметром nConversionSetting 5 и 6 позволяет конвертировать строки соответствеенно в юникод и обратно, используя не только кодовую страницу, установленную по умолчанию. SYS(3101) (VFP9) позволяет определить, как VFP будет транслировать строки, получаемые от COM-объектов.
3. Если надо иметь дело одновременно с несколькими языками, придется хранить их в таблицах, используя нейтральное представление, без привязки к какой-либо кодовой странице. Это можно сделать 2-мя способами: используя формат строк binary или конвертацию строк в UTF-8.
4. Работа по сравнению строк при этом потребует конвертирования обеих к одному типу.
5. Обычные функции, например, STRTRAN(), примененные к строкам в UTF-8, могут их искорежить. CHRTRAN(), само собой, становится неприменим в принципе.
6. При использовании для хранения данных SQL Server'а, поддерживающего UNICODE, и доступа к нему через ADO, задача упрощается.
7. Используя простые текстбоксы, юникод показать в формах нельзя. С отображением в веб браузере проблем поменьше. Для отображения в формах и гридах, юникодовы поля надо базировать на элементах ActiveX, а не родных VFP. Например, в статье есть скриншот формы, построенной на Microsoft Forms EditBox control (вместо textbox'а) и Data Dynamics SharpGrid (вместо Grid'а). Выглядит неплохо.
8. Геморроя много! Очень много. Так и написано: работа с UNICODE в VFP - занятие не для слабонервных.
...
Рейтинг: 0 / 0
Как можно в Text-е FoxPro печатать UNICOD-ом?
    #33039370
Sero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое. Я скачал форму описанную в статье, после ее запуска я выбрал в KDWIN 'Russian Phonetic Unicode' но в его-же EDIT Box-е символы печатаются в виде вопросительных знаков. Что же делать?
...
Рейтинг: 0 / 0
Как можно в Text-е FoxPro печатать UNICOD-ом?
    #33058652
Sero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну пожалуйста Urri ответьте на последний вопрос. Я вставил в форму TextBox от ActiveX,в Init-e формы обьявил thisform.olecontrol1.fontname='Times New Roman', но там опять-же одни вопросительные знаки печатаются. Мне нужно печатать на русском Unicode-e.Что делать? Спасибо.
...
Рейтинг: 0 / 0
Как можно в Text-е FoxPro печатать UNICOD-ом?
    #33058748
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На очень скорую руку получилось следующее.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
x = CREATEOBJECT('zzz')
x.Show
* -----------------------
DEFINE CLASS zzz AS form
  Top =  0 
  Left =  0 
  Height =  83 
  Width =  264 
  DoCreate = .T.
  Caption = "Form1"
  Name = "Form1"
ADD OBJECT txtdetail AS olecontrol WITH ;
  Top =  8 , Left =  96 , Height =  26 , Width =  156 , Anchor =  66 , Name = "txtDetail"
ADD OBJECT cg1 AS commandgroup WITH ;
  ButtonCount =  4 , Value =  1 , Height =  24 , Left =  12 , Top =  48 , Width =  240 , Name = "cg1", ;
    Command1.Top =  0 , Command1.Left =  0 , Command1.Height =  24 , Command1.Width =  60 , ;
    Command1.Caption = "\<New", Command1.Enabled = (not empty(xx.edtxt)), Command1.Name = "Command1", ;
    Command2.Top =  0 , Command2.Left =  60 , Command2.Height =  24 , Command2.Width =  60 , ;
    Command2.Caption = "\<<", Command2.Name = "Command2", ;
    Command3.Top =  0 , Command3.Left =  120 , Command3.Height =  24 , Command3.Width =  60 , ;
    Command3.Caption = "\<>", Command3.Name = "Command3", ;
    Command4.Top =  0 , Command4.Left =  180 , Command4.Height =  24 , Command4.Width =  60 , ;
    Command4.Caption = "\<Save", Command4.Name = "Command4"
ADD OBJECT label2 AS label WITH AutoSize = .T., BackStyle =  0 , Caption = "Edit Unicode", ;
  Height =  17 , Left =  12 , Top =  12 , Width =  72 , Name = "Label2"

PROCEDURE showall
  this.txtDetail.text = STRCONV(xx.edtxt, 14 )
  this.cg1.command1.Enabled = not empty(xx.edtxt)
ENDPROC
PROCEDURE saveall
  replace edtxt WITH STRCONV(thisform.txtDetail.text, 13 )
ENDPROC
PROCEDURE Load
  SYS( 3101 , 65001 )
  CREATE CURSOR xx (edtxt c( 100 ) NOCPTRANS)
  APPEND BLANK
ENDPROC
PROCEDURE Destroy
  USE IN xx
ENDPROC
PROCEDURE cg1.Command1.Click
  APPEND BLANK
  =thisform.showall()
ENDPROC
PROCEDURE cg1.Command2.Click
  SKIP - 1 
  IF BOF()
    GO top
  endif
  =thisform.showall()
ENDPROC
PROCEDURE cg1.Command3.Click
  SKIP  1 
  IF EOF()
    GO bottom
  endif
  =thisform.showall()
ENDPROC
PROCEDURE cg1.Command4.Click
  =thisform.saveall()
  =thisform.showall()
ENDPROC
ENDDEFINE
...
Рейтинг: 0 / 0
Как можно в Text-е FoxPro печатать UNICOD-ом?
    #33066064
Sero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извените меня Urri, но что-то у меня ничего не выгодит. У меня есть две формы, из одной формы в SQL 2000 вводятся русский текст, а из другой армянский. В обеих формах я использовал простые фонты, сейчас очень нужно чтоб текст вводился UNICOD-ом. Формы очень простые,в них не используются ни классы и ничего в этом роде. С тем как должен SQL запрос вводить текст в виде Unicode я уже разобрался. Для этого нужно перед переменной ставить большую букву N. Например:
sqlexec(sv,"insert into a(n_text) values (N'&text')")
Пожалуйста покажите на моем примере как сделать все это.
...
Рейтинг: 0 / 0
Как можно в Text-е FoxPro печатать UNICOD-ом?
    #33066136
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Sero!

Видимо, далее Вам придется разбираться самостоятельно. Я пока не имею намерения ставить на свой компьютер sql2000. Кроме того, у меня к проблеме использования unicode интерес чисто теоретический, на практике я ничего подобного не использую.
Возможно, Вам поможет кто-нибудь другой. Но для того, чтобы получить помощь, все же советую изложить ситуацию более подробно.
Что за тип поля в sql2000 используется? Каким образом данные с сервера попадают в Olecontrol1 Вашей формы?
Да и форма, которую Вы приложили к своему последнему сообщению, практически пустая, так что ход Вашего исследования проблемы остается неясен. Значит, тому, кто решится Вам помочь, потребуется пройти весь путь самостоятельно. Согласитесь, альтруистов мало. Увеличить вероятность получения ответа Вы можете, приведя собственный код. Указать на явно проблемное место проще, чем гадать, что там у Вас такое может происходить.
От себя могу только сообщить, что для работы с unicode можно использовать кодовую страницу 65001. И что SYS(3101) оказалась нужна даже в моем примере, хотя из ее описания это не очевидно.
...
Рейтинг: 0 / 0
Как можно в Text-е FoxPro печатать UNICOD-ом?
    #33068383
Sero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо что ответили.
В SQL я использую тип nchar. Данные в olecontrol попадают с клавиатуры, т.е. мне нужно чтоб все что пользователь набирает с клавиатуры, выбрав приэтом в KDWin-е Armenian Phonetic Unicode, отображались в нормальном виде. С русским я уже разобрался все получается. Кодовую страницы в армянской форме обьявил codepage=1250,SYS(3101,65001), но опять же печатаются эти вопросительные знаки.
...
Рейтинг: 0 / 0
Как можно в Text-е FoxPro печатать UNICOD-ом?
    #33073353
Sero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.
...
Рейтинг: 0 / 0
Как можно в Text-е FoxPro печатать UNICOD-ом?
    #33311530
Mankurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забавно, но отображать UNICODE в форме у меня получилось без проблем. Отображаю и запоминаю русский, английский и эстонский в одном поле одновременно.
ActiveX построил на базе Microsoft Forms TextBox control, но вот только не знаю - откуда он у меня на компе взялся: вместе с ХР, MS Office или еще откуда-нибудь. А могу ли я быть уверенным, что он будет и на 98? В любом случае теперь буду учиться печатать в UNICODE.
А у Sero похоже проблема в отношениях с SQL2000. Я по крайней мере работал с типом RAW в ORACLE.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как можно в Text-е FoxPro печатать UNICOD-ом?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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