Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.24;
Скачать: CL | DM;

Вниз

Unicode   Найти похожие ветки 

 
Bartov   (2003-03-11 14:37) [0]

var
ws: WideString;
st: string;

begin
st := "#1048";
ws := st; ??????
end;

Как сделать чтоб ws приняла от st значение как символ, а не строку.
т.е. ws := #1048, а НЕ ws := "#1048".


 
mdwmdw   (2003-03-11 16:51) [1]

Примерно вот так:

var
ws: WideString;
begin
SetLength(WS, 1);
WS[1]:= WideChar($1048);
end;


 
Bartov   (2003-03-11 19:26) [2]

2mdwmdw
Не катит... Выдает знак "?", а должна быть "И".

Пипл, подскажите кто че может.


 
SPeller ©   (2003-03-11 19:54) [3]

А может вместо $1048 по ставить просто 1048 ?


 
Bartov   (2003-03-11 22:31) [4]

2SPeller
> А может вместо $1048 по ставить просто 1048 ?
Нет.

Так, объясню попонятние.
В unicode код #1048 - это заглавная русская буква "И".
И это ни какой не hex или int.

Т.е. если st := #1048; это тоже самое что и st := "И";
Получается один символ!!!
А вот st := "#1048" - это строка из 5 символов.

В АПИ я не нашел ни одной функции, которая смогла бы строку перевести в 1 символ unicode. Вот что мне надо.

MultiByteToWideChar - не прокатывает, она не для этого.
Так-то я сделал перевод всей строки из unicode в ansi, но может можно как-то по другому?...

Вот пример: http://delphikol.narod.ru/progs/DfmUn2An.zip


 
centronix   (2003-03-12 01:04) [5]

Ну, дык, вроде ws:=WideChar(1048) (без "$") эквивалентно ws:=#1048. По крайней мере для st:=Char(65) и st:=#65 это справедливо...


 
Bartov   (2003-03-12 02:12) [6]

2 centronix

Сенкс, ws := WideChar(1048) получилось, что-то я стормозил...

А для составление строки unicode:
SetLength(ws, 2);
ws[1] := WideChar(1044);
ws[2] := WideChar(1072);
ShowMessage(ws);

Результат: "Да"


 
SPeller ©   (2003-03-12 03:49) [7]

2 Bartov (12.03.03 02:12)

Ну дык я ж тебе то же самое говорил :-)


 
Bartov   (2003-03-12 07:59) [8]

2 SPeller
Ну я ж говорю, стормозил ;-)


 
Yury Sidorov   (2003-03-12 10:36) [9]

Вообще-то проще всего объявить строковой литерал как resourcestring, а затем присвоить строке типа WideString. Ресурсы всегда хранятся в UNICODE.


 
Bartov   (2003-03-12 11:54) [10]

2 Yury Sidorov

Резон в том, что я читаю текстоваый файл, а там
Caption = #1048#1085#1092#1086#1088#1084#1072#1094#1080#1103
вот такая цепочка.

Поэтому надо сначало в integer переводим, а потом в string.
Я вот и хотел узнать как можно по другому сделать, оказывается ни как...


 
Yury Sidorov   (2003-03-12 12:51) [11]

Ну, тогда, действительно, ручками :)



Страницы: 1 вся ветка

Текущий архив: 2003.11.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
3-78773
stud
2003-11-05 15:22
2003.11.24
отчет - как много в этом звуке!


3-78813
Disruptor
2003-10-10 12:14
2003.11.24
Какую СУБД лучше использовать локально


3-78749
Dysan
2003-11-06 11:00
2003.11.24
Как через ADOQuery сделать выборку из таблиц из разных директори?


1-79047
NewD
2003-11-13 09:42
2003.11.24
Как в меню и в надписи формы отобразить техт пр. шрифта?


14-79113
Dimaz-z
2003-11-03 13:04
2003.11.24
Как организовать импорт из телефонной книги сотового в программу?