web-dev-qa-db-ja.com

PAnsiCharをWideStringまたは文字列に変換する方法は?

PAnsiChar変数をWideStringまたはstringに変換するにはどうすればよいですか?

13
Little Helper

変数を別の変数に割り当て、Delphiコンパイラにすべての変換を行わせるだけです。

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

別の方向に変換し、Delphi 7に限定して、Char、PChar、stringがすべてANSIデータ型である場合は、次のように使用します。

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

この方向に進む場合はキャストが必要であり、WideStringの場合、データはnullで終了するC文字列ポインターを要求する前にUnicodeからANSIに明示的に変換する必要があります。

15
David Heffernan
var
  s: AnsiString;
  w: WideString;
  p: PAnsiChar;
...
  s := p;
  w := WideString(s);
4
robmil

s:PAnsiChar;

WideString(AnsiString(s));

または、Unicode Delphiの場合、おそらく次のようになります。

String(AnsiString(s));

ドキュメントで StrPas 関数を探します。