Как преобразовать PAnsiChar в WideString или строку? - PullRequest
13 голосов
/ 24 апреля 2011

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

Ответы [ 4 ]

15 голосов
/ 24 апреля 2011

Вы просто присваиваете одну переменную другой и позволяете компилятору Delphi выполнить все преобразования за вас:

var
  p: PAnsiChar;
  s: string;
  w: WideString;
....
s := p;
w := p;

Если вы хотите преобразовать в другом направлении и ограничить обсуждение Delphi 7, для которогоChar, PChar, string - это все типы данных ANSI, которые вы использовали бы следующим образом:

PAnsiChar(s);
PAnsiChar(AnsiString(w));

Преобразования необходимы при движении в этом направлении, а в случае WideString данные должны быть явно преобразованы из Unicode вANSI перед запросом указателя строки C с нулевым символом в конце.

4 голосов
/ 24 апреля 2011
var
  s: AnsiString;
  w: WideString;
  p: PAnsiChar;
...
  s := p;
  w := WideString(s);
2 голосов
/ 24 апреля 2011

s: PAnsiChar;

WideString(AnsiString(s));

Или на Unicode Delphi вы, вероятно, хотите:

String(AnsiString(s));
1 голос
/ 24 апреля 2011

Найдите в документах функцию StrPas .

...