Q&A

  • 델파이에서 가변변수를 사용할 수 없나요???
bbb에 'aaa'라는 변수명이 들어가 있는데
이 들어가 있는값을 어떻게 변수처럼 인식을 시킬수 있을까요???

procedure chgMsg;
var
  aaa : string;
  bbb : string;
begin
  aaa := '에러입니다.!!!';
  bbb := 'aaa';

  {
   bbb에는 'aaa'값이 들어가 있는데
   이 bbb를 php처럼 가변변수를 사용하여
   aaa의 값인 '에러입니다.!!!' 를 출력할 수없을까요???  
   }
    
  showmessage(bbb);

end;
3  COMMENTS
  • Profile
    모영철 2005.09.07 17:38
    말씀하신 코드라면

    bbb := aaa;

    이렇게 하면 될거 같은데요..

  • Profile
    맹상영 2005.09.07 19:54
    var
    msg001 : string  
    msg002 : string  

    procedure msgStr;
    begin
    msg001 := '에러입니다.'
    msg002 := '저장했습니다.'

    end;

    procedure procPro;
    begin
    showmessage(chgChar('msg001'));
    end;

    function chgChar(msgNum:string): string;
    begin
    msgNum 을 어케 처리해야 'msg001'에 들어있는 변수값을 가져올까요???
    Result := showmessage(msgNum);
    {
      즉 여기에서 ssgNum 이라는 변수에는 'msg001' 이라는값을
      가지고있는데 이값 자체를 변수로 다시 인식시켜서
      msg001 에 들어있는 변수를 보여줄려고 합니다.
      php 에서는 가변변수라고 하는데
      델파이에선 방법이 없을까요
    }
    end;




  • Profile
    이중철 2005.09.07 21:49
    원문의 예제는 주제와 전혀 별개라서 답변자도 그와 같이 답변했을 뿐 입니다.

    그리고 원론적으로 말씀드리면 해당기능은 지원하지 않습니다.

    단 스크립터(해석기)를 만들면 됩니다.

    펄은 스크립트 언어 입니다.

    해석기가 별도로 존재하죠

    펄은 실행할때마다 해석기가 분석한 다음 바이너리 코드로 만들어서 실행합니다.

    그래서 가변변수라는 것이 존재할 수 있는 것이고요

    델파이는 곧바로 바이너리 코드로 만들어 지므로 원론적으로는 안됩니다.

    만약에 컴파일러로서 델파이가 가변변수를 지원 하였다면 그 누구도 델파이를 사용하지 않았을 것입니다.

    변수 하나 하나에 변수명을 기록하는 클래스가 들어가고 또한 Assgin시 매치시켜주는

    프로시저가 들어가고 등등 추측컨데 실행파일 사이즈는 2배 실행속도는 3배 이상으로 늘어날 것

    입니다. 참으로 다행스럽죠(현존하는 컴파일러들은 해당 기능을 제공하지 않습니다.)