Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.25;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.033 c
11-1148150920
Виталий(гость)
2006-05-20 22:48
2007.03.25
Неожиданно возникшие Проблемы :-(


2-1172965852
arturich
2007-03-04 02:50
2007.03.25
Опять про автозаполнение формы через webbrowser


15-1172501155
Германн
2007-02-26 17:45
2007.03.25
Бабуины, бабуины. Вот шимпанзе - это да!


2-1172761724
Anderson2007
2007-03-01 18:08
2007.03.25
A call to OS function failed


2-1172752592
MrBabols
2007-03-01 15:36
2007.03.25
помогите дописать калькулятор