![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Константное значение widestring [D6, Win2k]
Суслик © (2004-09-28 12:34:00)Добрый день.
Все знают, что можно задавать константные значения для AnsiString в виде
var
s: AnsiString;
begin
s := #$AA#$FE#$13;
end;
Задавать константные значения для WideString мне раньше не приходилось. Мне казалось очевидным, что это можно сделать так
var
ws: WideString;
begin
ws := #$0102#$0304;
end;
Но как показал cpu в этом случае фактически происходит такое присвоение
ws := #$0002#$0004;
т.е. старший байт игнорируется.
При этом присвоение ровно одного символа
ws := #$0447;
исправно работает (в примере будет какой-то русский символ)
Из положения можно выйти так
ws := WideString(#$0102) + WideString(#$0304);
Но это же ерунда какая-то? Должен быть способ простого задания константного значения для WideString.
Вопрос.Как задать константное значение для WideString длиной более одного символа?
DiamondShark (2004-09-28 13:12:00) [1]
> Суслик © (28.09.04 13:06) [4]
Я тебя обрадую: я смотрел на 5. Так что всё ещё более одинаково ;)
Этакий кочующий глючок-с.
Суслик (2004-09-28 13:06:00) [2]
> [3] DiamondShark © (28.09.04 13:01)
Вряд ли глючокс.
Я смотрел на 6 и на 7 дельфи. Везде одинаково.
DiamondShark (2004-09-28 13:01:00) [3]Похоже, таки, глючок-с...
так работает
const
pw: array[0..2] of WideChar = (#$0447, #$0448, #0);
var
W: WideString;
begin
W := pw;
...
Но муторно.
Суслик (2004-09-28 13:00:00) [4]
> [1] Игорь Шевченко © (28.09.04 12:51)
Боюсь, что никак
Спасибо.
У меня после поиска по штатной доке, в Тайкстере и в сети сложилось такое же ощущение.
Мне вообще это нужно для написания теста экспорта в файл формата BIFF8 для Excel. В тесте я могу обойтись и без WideString - буду просто передавать открытый массив word.
ЗЫ.
Странно, что это не сделано...
Игорь Шевченко (2004-09-28 12:51:00) [5]
> Как задать константное значение для WideString длиной более
> одного символа?
Боюсь, что никак. Впрочем, буду рад узнать, что ошибся.
Я бы попробовал поэкспериментировать с const A: array[0..xx] of WideChar = (WideChar($0102), ...) и т.д.
или WideChar($0102)+WideChar($0103)...