• ベストアンサー

delphiで配列を、コピーするには。

delphiで配列をコピーするには、どうしたらいいのでしょうか? Betr_Hairetu := Moto_Hairetu ; としたいのですが。 Betr_Hairetu := Copy(Moto_Hairetu, 0 ,Length( Moto_Hairetu ) ); では、ダメでした。 ループで、一から入れ直せばいいのですが、かっこわるいなー・・・。 なにか、簡単な関数があるとは思うのですが、探すことができませんでした。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

本来のパスカルでは、配列と文字列(ストリング)は異質であって 相容れるものではありません。 DelphiのCopy関数は、文字列をコピーするものであって 配列をコピーするものではありません。 ちなみに、Copy関数の第2引数に0が指定されることはありません Delphiの文字列のインデクスは1から始まります ところが、Delphiのあるバージョンから、array[] of char と string が 同じように扱われるようになったので、やや混乱すると思います。 ですが、Delphiでは、文字配列かstringかをはっきり区別して使用するほうが 無難です。 質問では、配列としか書かれていないので、整数の配列か、はたまたレコードの配列か わかりませんが、 var ar1, ar2 :array[0..5] of integer; begin for i := 0 to 5 do ar1[i] := i * 11; Move(ar1,ar2, SizeOf(ar1)); end と Move関数が使えます また、OSがWindowsで、Win32を使えるなら CopyMemory関数を使う方法もあります。

noname#49406
質問者

お礼

なるほどー。 やはり、変数の型がポイントになりますね。 ありがとうございます。 >Copy関数の第2引数に0が指定されることはありません 訂正ありがとうございます。 ありがとうございます。

関連するQ&A