![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как корректно переконвертировать PWideChar в WideString? [D7, WinXP]
Dr. Andrew © (2007-07-11 17:12:00)Как корректно переконвертировать PWideChar в WideString? Есть такая функция наподобие PWideCharToWideString? Спасибо всем за ответ!
Однокамушкин (2007-07-11 18:58:00) [1]Проверил на таком коде:
procedure TForm1.Button1Click(Sender: TObject);
var
P: PWideChar;
S: WideString;
begin
S := 'Строка№1';
P := SysAllocString(PWideChar(S));
Button1.Caption := IntToStr(WidePos(#32, P));
SysFreeString(P);
end;
Работает правильно, пробелов не находит... подозреваю, что у вас в pw ещё какой-то хвост есть из-за отсутствия нулевого терминатора в конце...
MetalFan (2007-07-11 18:45:00) [2]а разве простое присвоение не пройдет?
и зачем тут чтото конвернтировать???
Dr. Andrew (2007-07-11 17:26:00) [3]но при этом подобная конструкция if WidePos(#32, pw) = 0 then находит пробел, которого в действительности нет, напрмиер в строке "строка№1". Как правильно все же сделать запись?
Однокамушкин (2007-07-11 17:22:00) [4]А зачем вам функция? Просто присваиваете WideString-овой переменной значение типа PWideChar, и умный компиялтор всё сделает...
Dr. Andrew (2007-07-11 17:20:00) [5]А можно более конкретнее привести пример? или функцию? Спасибо!
Reindeer Moss Eater (2007-07-11 17:13:00) [6]PWideChar в ансистроку, а она уже совместима по присваиванию c widestring