文字列の内容をchar配列にコピーしたい。
このコードを使用できますかStrLCopy(C, pChar(@S[1]), high(C));
現在Delphi2006を使用しています。新しいバージョンで提供されているUnicodeサポートのためにDelphiバージョンをアップグレードした場合、問題は発生しますか?
そうでない場合、この変換のコードは何でしょうか?
文字列の内容をchar配列にコピーしたい。
このコードを使用できますかStrLCopy(C, pChar(@S[1]), high(C));
現在Delphi2006を使用しています。新しいバージョンで提供されているUnicodeサポートのためにDelphiバージョンをアップグレードした場合、問題は発生しますか?
そうでない場合、この変換のコードは何でしょうか?
文字列を配列にコピーする場合は、を優先しStrPLCopy
ます。
StrPLCopy(C, S, High(C));
これは、Unicodeが有効な場合でも、Delphiのすべてのバージョンで機能します。との文字タイプは同じである必要がありますC
。S
その関数を使用してAnsi文字とUnicode文字を変換しようとしないでください。
しかしStrLCopy
、それも大丈夫です。ただし、それほど多くのポインタコードは必要ありません。Delphiは、文字列をPCharに変換する方法をすでに知っています。
StrLCopy(C, PChar(S), High(C));
これは、簡単なテストで機能します。
var
ch: array[0..10] of Char;
c: Char;
x: Integer;
st: string;
begin
s := 'Testing';
StrLCopy(PChar(@ch[0]), PChar(s), High(ch));
x := 100;
for c in ch do
begin
Canvas.TextOut(x, 100, c);
Inc(c, Canvas.TextWidth(c) + 3);
end;
end;