Главная страница
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.035 c
1-78930
Zheks
2003-11-12 10:14
2003.11.24
из байта в текст


14-79105
snake1977
2003-11-02 14:58
2003.11.24
Учиться, учиться и учиться.....


4-79243
free
2003-09-25 23:04
2003.11.24
Нажатие клавишь


1-78973
P0tia
2003-11-14 15:36
2003.11.24
Создание формы


14-79188
Думкин
2003-11-03 05:17
2003.11.24
С днем рождения! 3 ноября.