Подтвердить что ты не робот

Как преобразовать PAnsiChar в WideString или строку?

Как преобразовать переменную PAnsiChar в WideString или в string?

4b9b3361

Ответ 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 функцию в документах.