Как преобразовать переменную PAnsiChar
в WideString
или в string
?
Как преобразовать PAnsiChar в WideString или строку?
Ответ 1
Вы просто назначаете одну переменную другой и позволяете компилятору Delphi выполнить все преобразования для вас:
var
p: PAnsiChar;
s: string;
w: WideString;
....
s := p;
w := p;
Если вы хотите конвертировать в другом направлении и ограничиваете обсуждение Delphi 7, для которого Char, PChar, строка - это все типы данных ANSI, вы использовали бы следующее:
PAnsiChar(s);
PAnsiChar(AnsiString(w));
При переходе в этом направлении необходимы приводы, и в случае WideString данные должны быть явно преобразованы из Unicode в ANSI, прежде чем запрашивать указатель строки C с нулевым завершением.
Ответ 2
var
s: AnsiString;
w: WideString;
p: PAnsiChar;
...
s := p;
w := WideString(s);
Ответ 3
s: PAnsiChar;
WideString(AnsiString(s));
Или в unicode Delphi вы, вероятно, захотите:
String(AnsiString(s));
Ответ 4
Ищите StrPas функцию в документах.