Q&A

  • 동적배열안에 스트링값을 넣고 싶어요.
procedure TMainF.Button1Click(Sender: TObject);

var

Str_Temp : String;

Char_Temp : array of Char;

begin

Str_Temp := 'ABC';

SetLength(Char_Temp, Length(Str_Temp));



StrPCopy(Char_Temp, Str_Temp); <-- 이곳이 당연 에러네요.

end;



동적배열에 스트링 값을 넣으려고 합니다.

2  COMMENTS
  • Profile
    델맹 2001.05.30 03:56
    처음 wrote:

    > procedure TMainF.Button1Click(Sender: TObject);

    > var

    > Str_Temp : String;

    > Char_Temp : array of Char;

    > begin

    > Str_Temp := 'ABC';

    > SetLength(Char_Temp, Length(Str_Temp));

    >

    > StrPCopy(Char_Temp, Str_Temp); <-- 이곳이 당연 에러네요.

    > end;

    >

    > 동적배열에 스트링 값을 넣으려고 합니다.





    긴문자열, 동적배열은 특별한 포인터 형입니다. 그러므로 pointer를 통한 중간 타입캐스팅이 필요합니다.



    Str_Temp := 'ABC';

    SetLength(Char_Temp, Length(Str_Temp));

    Move(pointer(Str_Temp)^,pointer(Char_Temp)^,Length(Str_Temp));





  • Profile
    처음 2001.05.30 04:08
    감사합니다.

    정확한 답변에 고개 숙여 감사드립니다.



    델맹 wrote:

    > 처음 wrote:

    > > procedure TMainF.Button1Click(Sender: TObject);

    > > var

    > > Str_Temp : String;

    > > Char_Temp : array of Char;

    > > begin

    > > Str_Temp := 'ABC';

    > > SetLength(Char_Temp, Length(Str_Temp));

    > >

    > > StrPCopy(Char_Temp, Str_Temp); <-- 이곳이 당연 에러네요.

    > > end;

    > >

    > > 동적배열에 스트링 값을 넣으려고 합니다.

    >

    >

    > 긴문자열, 동적배열은 특별한 포인터 형입니다. 그러므로 pointer를 통한 중간 타입캐스팅이 필요합니다.

    >

    > Str_Temp := 'ABC';

    > SetLength(Char_Temp, Length(Str_Temp));

    > Move(pointer(Str_Temp)^,pointer(Char_Temp)^,Length(Str_Temp));

    >

    >