質問: delphiで配列を、コピーするには。 delphiで配列をコピーするには、どうしたらいいのでしょうか? betr_hairetu := moto_hairetu ; としたいのですが。 betr_hairetu := copy(moto_hairetu, 0 ,length( moto_hairetu ) ); では、ダメでした。 ループで、一から入れ直せばいいのですが、かっこわるいなー・・・。 なにか、簡単な関数があるとは思うのですが、探すことができませんでした。 よろしくお願いします。
回答: 本来のパスカルでは、配列と文字列(ストリング)は異質であって 相容れるものではありません。 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関数を使う方法もあります。