Вниз
Скачать: CL | DM;

WideString - > UnicodeString   Найти похожие ветки 

← →
gosha73   (2007-03-04 23:38) [0]

Приветствую друзья.
Подскажите пожалуйста каким образом получить содержимое памяти WideString в более безопасном варианте чем мой:

var wStr : WideString;
    s : String;
begin
 wStr := "Ю";
 s := PChar(wStr); вот здесь появляется warning
 ...
end;

Мне необходимо заполучить в S именно двухбайтовые значения, которые хранит в памяти wStr для своих символов. Моим методом все работает, но warning понятно почему появляется. Может есть более грамотная функция, которая позволит получить содержимое WideString в обычный String в том двухбайтовом виде как оно в памяти лежит?


← →
palva ©   (2007-03-04 23:47) [1]

Метод не очень корректный. Например, если у вас в строке попадется цифра, то строка скопируется частично, поскольку копирование натолкнется на нулевой байт, которым все и кончится.
Стандартной функции быть не должно, поскольку процедура уж очень нестандартная.
По моему, корректно будет установить нужную длину для s, а потом применить функцию Move (с явным указанием длины копирования)


← →
gosha73   (2007-03-05 00:11) [2]

Я к сожалению не особо знаю как пользоваться Move.
Вот так вот пробую, но что-то на выходе полная ерунда...
Может знаете как правильно?

 SetLength(s, SizeOf(wStr));
 Move(Pointer(wStr), s[1], Length(s));


← →
palva ©   (2007-03-05 13:07) [3]


{$APPTYPE CONSOLE}
var
 wStr: WideString;
 s : String;
 len, i: Integer;
begin
 wStr := "123Ю456";
 len:= Length(wStr) * 2;
 SetLength(s, len);
 Move(wStr[1], s[1], len);
 // а теперь напечатаем:
 for i:=1 to len do Write(Ord(s[i]):3);
 WriteLn; //  49  0 50  0 51  0 46  4 52  0 53  0 54  0
 ReadLn;
end.


← →
Desdechado ©   (2007-03-05 13:19) [4]

А чем тебя не устраивает WideString ?



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.028 c
15-1172434600
Nic
2007-02-25 23:16
2007.03.25
Покритикуйте дизайн сайт


15-1172507241
Calibr
2007-02-26 19:27
2007.03.25
Прозрачность


8-1153917194
BadTester
2006-07-26 16:33
2007.03.25
Как из Image сделать полноценную кнопку?


1-1170495138
Medved_
2007-02-03 12:32
2007.03.25
StringGrid


15-1172522655
Kerk
2007-02-26 23:44
2007.03.25
Работа




   Наверх