Q&A

  • 포인터..및 배열, 문자열
델파이 초보입니다.

넘 기본적인걸 질문드리는 것 같군요..



var

b:array[0..2] as byte;

s:string;



와 같이 선언되어 있을때

b배열에 각각 'a', 'b', 'c'의 아스카 값이 들어 있을시.

abc를 효과적으로 s변수로 가져올수 있는 방법이 있나요?



또한

var

p1: Pbyte;

p2: Pbyte;

begin

GetMem(p, 10);

end;



여기서

p2가 p1의 2번재, 또는 3번째 위치를 가르키도록 하려면 어떻게 해야 하나요?

덧분혀서 p1를 다른 함수에서 참조하려면 함수 선언부와 호출부는 어떻게 작성해야 하지요..

?

파스칼 문법에 대해 자세히 나온 사이트 있으면 알려주세요...?





3  COMMENTS
  • Profile
    최용일 2000.03.28 18:43
    첫번째

    var

    B: array[0..2] of Byte;

    S: string;

    begin

    S := string(@B);

    Setlength(S, High(B));

    end;



    두번째

    function FuncPByte: PByte;

    var

    P1: PByte;

    P2: PByte;

    begin

    GetMem(P1, 10);

    P2 := P1;

    Inc(Integer(Pointer(P2)), 3);// 3번째 위치

    Result := P1; // 다른 함수에서 참조가능

    end;



    다른 함수내에서

    var

    P: PByte;

    begin

    P := FuncPByte;

    end;



    요즘은 좋은 책이 많이 나와 있습니다. 책을 보시구 열심히 공부하세요...



    오이군 wrote:

    > 델파이 초보입니다.

    > 넘 기본적인걸 질문드리는 것 같군요..

    >

    > var

    > b:array[0..2] as byte;

    > s:string;

    >

    > 와 같이 선언되어 있을때

    > b배열에 각각 'a', 'b', 'c'의 아스카 값이 들어 있을시.

    > abc를 효과적으로 s변수로 가져올수 있는 방법이 있나요?

    >

    > 또한

    > var

    > p1: Pbyte;

    > p2: Pbyte;

    > begin

    > GetMem(p, 10);

    > end;

    >

    > 여기서

    > p2가 p1의 2번재, 또는 3번째 위치를 가르키도록 하려면 어떻게 해야 하나요?

    > 덧분혀서 p1를 다른 함수에서 참조하려면 함수 선언부와 호출부는 어떻게 작성해야 하지요..

    > ?

    > 파스칼 문법에 대해 자세히 나온 사이트 있으면 알려주세요...?

    >

    >

  • Profile
    오이군 2000.03.28 19:36
    친절한 답변 감사합니다.

    요즘 델파이 책보면 문법은 거의 없고 컨트롤 사용법만 나오는데 좋은 책있으면 추천 바랍니다.

    그리고 한가지더 질문 ?

    그러면 문자열 변수의 값을 효과적으로 바이트 배열에 넣으려면 어떻게 하면 되나요?



    최용일 wrote:

    > 첫번째

    > var

    > B: array[0..2] of Byte;

    > S: string;

    > begin

    > S := string(@B);

    > Setlength(S, High(B));

    > end;

    >

    > 두번째

    > function FuncPByte: PByte;

    > var

    > P1: PByte;

    > P2: PByte;

    > begin

    > GetMem(P1, 10);

    > P2 := P1;

    > Inc(Integer(Pointer(P2)), 3);// 3번째 위치

    > Result := P1; // 다른 함수에서 참조가능

    > end;

    >

    > 다른 함수내에서

    > var

    > P: PByte;

    > begin

    > P := FuncPByte;

    > end;

    >

    > 요즘은 좋은 책이 많이 나와 있습니다. 책을 보시구 열심히 공부하세요...

    >

    > 오이군 wrote:

    > > 델파이 초보입니다.

    > > 넘 기본적인걸 질문드리는 것 같군요..

    > >

    > > var

    > > b:array[0..2] as byte;

    > > s:string;

    > >

    > > 와 같이 선언되어 있을때

    > > b배열에 각각 'a', 'b', 'c'의 아스카 값이 들어 있을시.

    > > abc를 효과적으로 s변수로 가져올수 있는 방법이 있나요?

    > >

    > > 또한

    > > var

    > > p1: Pbyte;

    > > p2: Pbyte;

    > > begin

    > > GetMem(p, 10);

    > > end;

    > >

    > > 여기서

    > > p2가 p1의 2번재, 또는 3번째 위치를 가르키도록 하려면 어떻게 해야 하나요?

    > > 덧분혀서 p1를 다른 함수에서 참조하려면 함수 선언부와 호출부는 어떻게 작성해야 하지요..

    > > ?

    > > 파스칼 문법에 대해 자세히 나온 사이트 있으면 알려주세요...?

    > >

    > >

  • Profile
    최용일 2000.03.28 20:03
    델파이보단 파스칼책을 찾아보시는것이 더 빠를 것같군요. 델파이와 파스칼은



    같은 계열이니까요. 파스칼책들은 대부분 문법위주로 되어있습니다.



    터보파스칼정복(가남사) - 지금도 판매되는지 모르겠군요... 아마 있을겁니다...



    스트링을 배열로...

    Move함수를 이용하여 스트링값을 배열로 이동시켜주시면 됩니다.

    var

    A: array of byte;

    S: string;

    begin

    SetLength(A, Length(S));

    Move(S[1], A[0], Length(S)); //<== 스트링을 배열로...

    end;





    보시면 한쪽구석에

    오이군 wrote:

    > 친절한 답변 감사합니다.

    > 요즘 델파이 책보면 문법은 거의 없고 컨트롤 사용법만 나오는데 좋은 책있으면 추천 바랍니다.

    > 그리고 한가지더 질문 ?

    > 그러면 문자열 변수의 값을 효과적으로 바이트 배열에 넣으려면 어떻게 하면 되나요?

    >

    > 최용일 wrote:

    > > 첫번째

    > > var

    > > B: array[0..2] of Byte;

    > > S: string;

    > > begin

    > > S := string(@B);

    > > Setlength(S, High(B));

    > > end;

    > >

    > > 두번째

    > > function FuncPByte: PByte;

    > > var

    > > P1: PByte;

    > > P2: PByte;

    > > begin

    > > GetMem(P1, 10);

    > > P2 := P1;

    > > Inc(Integer(Pointer(P2)), 3);// 3번째 위치

    > > Result := P1; // 다른 함수에서 참조가능

    > > end;

    > >

    > > 다른 함수내에서

    > > var

    > > P: PByte;

    > > begin

    > > P := FuncPByte;

    > > end;

    > >

    > > 요즘은 좋은 책이 많이 나와 있습니다. 책을 보시구 열심히 공부하세요...

    > >

    > > 오이군 wrote:

    > > > 델파이 초보입니다.

    > > > 넘 기본적인걸 질문드리는 것 같군요..

    > > >

    > > > var

    > > > b:array[0..2] as byte;

    > > > s:string;

    > > >

    > > > 와 같이 선언되어 있을때

    > > > b배열에 각각 'a', 'b', 'c'의 아스카 값이 들어 있을시.

    > > > abc를 효과적으로 s변수로 가져올수 있는 방법이 있나요?

    > > >

    > > > 또한

    > > > var

    > > > p1: Pbyte;

    > > > p2: Pbyte;

    > > > begin

    > > > GetMem(p, 10);

    > > > end;

    > > >

    > > > 여기서

    > > > p2가 p1의 2번재, 또는 3번째 위치를 가르키도록 하려면 어떻게 해야 하나요?

    > > > 덧분혀서 p1를 다른 함수에서 참조하려면 함수 선언부와 호출부는 어떻게 작성해야 하지요..

    > > > ?

    > > > 파스칼 문법에 대해 자세히 나온 사이트 있으면 알려주세요...?

    > > >

    > > >