Q&A

  • move함수 질문 입니다. (델파이)
다음과 같이 작업을 합니다.

그런데 제가 move함수와 자료구조에 익숙치 않아서요..

저기에서 Service는 구조체 변수로 Service : string[8]이 잡혀 있습니다.



move('CFU5012C', Service, sizeof(Service));



그런데 이것이 실행되면

값이 맨 앞에 있는 'C'자가 짤리고 move됩니다.

그러닌까..Service에 'FU5012C'만 들어 간다는 얘기지요..

이걸 어떻게 해야 할까요..?

Service[0]이 length가 들어가서 그런가요..

암튼 잘 모르겠네요..아무리 해봐도...

고수님들의 가르침 기다리겠습니다.

꾸~뻑~

5  COMMENTS
  • Profile
    바사기몬 2000.08.29 23:13
    변수를 string말고 아래 처럼 하시면 되네요..

    원하시는 내용인지 모르지만요..

    move함수가 그러케 움직이니 그러케 써야겠지요.. ^^



    Service : array[1..8] of char;





    델피언 wrote:

    > 다음과 같이 작업을 합니다.

    > 그런데 제가 move함수와 자료구조에 익숙치 않아서요..

    > 저기에서 Service는 구조체 변수로 Service : string[8]이 잡혀 있습니다.

    >

    > move('CFU5012C', Service, sizeof(Service));

    >

    > 그런데 이것이 실행되면

    > 값이 맨 앞에 있는 'C'자가 짤리고 move됩니다.

    > 그러닌까..Service에 'FU5012C'만 들어 간다는 얘기지요..

    > 이걸 어떻게 해야 할까요..?

    > Service[0]이 length가 들어가서 그런가요..

    > 암튼 잘 모르겠네요..아무리 해봐도...

    > 고수님들의 가르침 기다리겠습니다.

    > 꾸~뻑~

  • Profile
    델피언 2000.08.30 00:32
    넘 감사합니다..

    항상 고수님들께 질문만 드리고 있는데..

    곧 저도 답변 많이 하는 델피언이 되도록 노력 하겠습니다.

    그리고 혹시

    TEvent.WaitFor에 대해서 알고 싶습니다.

    그리고 같은 기능을 하는 것들에 대해서도 알고 싶구요..

    작은 자료라도 있으시다면 좋겠네요..

    좋은 하루 되셔요..

    꾸뻑~



    바사기몬 wrote:

    > 변수를 string말고 아래 처럼 하시면 되네요..

    > 원하시는 내용인지 모르지만요..

    > move함수가 그러케 움직이니 그러케 써야겠지요.. ^^

    >

    > Service : array[1..8] of char;

    >

    >

    > 델피언 wrote:

    > > 다음과 같이 작업을 합니다.

    > > 그런데 제가 move함수와 자료구조에 익숙치 않아서요..

    > > 저기에서 Service는 구조체 변수로 Service : string[8]이 잡혀 있습니다.

    > >

    > > move('CFU5012C', Service, sizeof(Service));

    > >

    > > 그런데 이것이 실행되면

    > > 값이 맨 앞에 있는 'C'자가 짤리고 move됩니다.

    > > 그러닌까..Service에 'FU5012C'만 들어 간다는 얘기지요..

    > > 이걸 어떻게 해야 할까요..?

    > > Service[0]이 length가 들어가서 그런가요..

    > > 암튼 잘 모르겠네요..아무리 해봐도...

    > > 고수님들의 가르침 기다리겠습니다.

    > > 꾸~뻑~

  • Profile
    최용일 2000.08.29 23:10
    안녕하세요. 델파이세상(http://www.freechal.com/delphiworld)의 최용일입니다.



    안시스트링을 SizeOf함수로 구하면 그 크기+1의 값이 반환됩니다. 안시스트링은 첫번째



    바이트에 스트링의 크기를 저장하기 때문에...



    Service[0] := #8; // setting string's size

    move('CFU5012C', Service[1], sizeof(Service) - 1);



    ^^ 항상 즐코하세요.



    델피언 wrote:

    > 다음과 같이 작업을 합니다.

    > 그런데 제가 move함수와 자료구조에 익숙치 않아서요..

    > 저기에서 Service는 구조체 변수로 Service : string[8]이 잡혀 있습니다.

    >

    > move('CFU5012C', Service, sizeof(Service));

    >

    > 그런데 이것이 실행되면

    > 값이 맨 앞에 있는 'C'자가 짤리고 move됩니다.

    > 그러닌까..Service에 'FU5012C'만 들어 간다는 얘기지요..

    > 이걸 어떻게 해야 할까요..?

    > Service[0]이 length가 들어가서 그런가요..

    > 암튼 잘 모르겠네요..아무리 해봐도...

    > 고수님들의 가르침 기다리겠습니다.

    > 꾸~뻑~

  • Profile
    델피언 2000.08.30 00:19
    //-------------------------------------------------------------//

    최용일님..안녕하세요...

    넘 감사합니다...

    저번 답변도 넘 고마웠었습니다.(기억도 못하시겠지만여..^^)

    저도 이번 프로젝트 빨랑 마무리하고 답변 많이 올리겠습니다.

    이번에 프로젝트가 첨 해보는 업무라서 힘이 드는 군요..

    넘 감사합니다.(정말로 정말로)

    아참..

    혹시 쓰레드에서요..

    if FEvent.WaitFor(INFINITE) <> wrSignaled then

    인런거 알려면 어떤 책을 봐야 하는지 추천좀 부탁 합니다.

    급한터라서..

    용일님께서 간단히 설명 해 주시면 넘 좋겠네요..

    쓰레드 Wait관련 자료를 전부 찾아 봐야 겠어요..

    이번 프로젝트 그거 잘 써야 하거든요..

    여러가지 있던데,..

    Waitfor

    waitforsingle

    waitformulti....

    등등

    //-------------------------------------------------------------//

    최용일 wrote:

    > 안녕하세요. 델파이세상(http://www.freechal.com/delphiworld)의 최용일입니다.

    >

    > 안시스트링을 SizeOf함수로 구하면 그 크기+1의 값이 반환됩니다. 안시스트링은 첫번째

    >

    > 바이트에 스트링의 크기를 저장하기 때문에...

    >

    > Service[0] := #8; // setting string's size

    > move('CFU5012C', Service[1], sizeof(Service) - 1);

    >

    > ^^ 항상 즐코하세요.

    >

    > 델피언 wrote:

    > > 다음과 같이 작업을 합니다.

    > > 그런데 제가 move함수와 자료구조에 익숙치 않아서요..

    > > 저기에서 Service는 구조체 변수로 Service : string[8]이 잡혀 있습니다.

    > >

    > > move('CFU5012C', Service, sizeof(Service));

    > >

    > > 그런데 이것이 실행되면

    > > 값이 맨 앞에 있는 'C'자가 짤리고 move됩니다.

    > > 그러닌까..Service에 'FU5012C'만 들어 간다는 얘기지요..

    > > 이걸 어떻게 해야 할까요..?

    > > Service[0]이 length가 들어가서 그런가요..

    > > 암튼 잘 모르겠네요..아무리 해봐도...

    > > 고수님들의 가르침 기다리겠습니다.

    > > 꾸~뻑~

  • Profile
    최용일 2000.08.30 00:20
    안녕하세요.



    TEvent.WaitFor함수는 주어진 시간동안 이벤트객체에 어떤 시그널이 들어올때까지



    대기하는 함수입니다. 리턴값은 들어온 시그널이구요...



    함수들에대한 설명은 델파이 헬프, Windows SDK헬프에 자세히 나와 있습니다.



    ^^ 항상 즐코하세요.



    델피언 wrote:

    > //-------------------------------------------------------------//

    > 최용일님..안녕하세요...

    > 넘 감사합니다...

    > 저번 답변도 넘 고마웠었습니다.(기억도 못하시겠지만여..^^)

    > 저도 이번 프로젝트 빨랑 마무리하고 답변 많이 올리겠습니다.

    > 이번에 프로젝트가 첨 해보는 업무라서 힘이 드는 군요..

    > 넘 감사합니다.(정말로 정말로)

    > 아참..

    > 혹시 쓰레드에서요..

    > if FEvent.WaitFor(INFINITE) <> wrSignaled then

    > 인런거 알려면 어떤 책을 봐야 하는지 추천좀 부탁 합니다.

    > 급한터라서..

    > 용일님께서 간단히 설명 해 주시면 넘 좋겠네요..

    > 쓰레드 Wait관련 자료를 전부 찾아 봐야 겠어요..

    > 이번 프로젝트 그거 잘 써야 하거든요..

    > 여러가지 있던데,..

    > Waitfor

    > waitforsingle

    > waitformulti....

    > 등등

    > //-------------------------------------------------------------//

    > 최용일 wrote:

    > > 안녕하세요. 델파이세상(http://www.freechal.com/delphiworld)의 최용일입니다.

    > >

    > > 안시스트링을 SizeOf함수로 구하면 그 크기+1의 값이 반환됩니다. 안시스트링은 첫번째

    > >

    > > 바이트에 스트링의 크기를 저장하기 때문에...

    > >

    > > Service[0] := #8; // setting string's size

    > > move('CFU5012C', Service[1], sizeof(Service) - 1);

    > >

    > > ^^ 항상 즐코하세요.

    > >

    > > 델피언 wrote:

    > > > 다음과 같이 작업을 합니다.

    > > > 그런데 제가 move함수와 자료구조에 익숙치 않아서요..

    > > > 저기에서 Service는 구조체 변수로 Service : string[8]이 잡혀 있습니다.

    > > >

    > > > move('CFU5012C', Service, sizeof(Service));

    > > >

    > > > 그런데 이것이 실행되면

    > > > 값이 맨 앞에 있는 'C'자가 짤리고 move됩니다.

    > > > 그러닌까..Service에 'FU5012C'만 들어 간다는 얘기지요..

    > > > 이걸 어떻게 해야 할까요..?

    > > > Service[0]이 length가 들어가서 그런가요..

    > > > 암튼 잘 모르겠네요..아무리 해봐도...

    > > > 고수님들의 가르침 기다리겠습니다.

    > > > 꾸~뻑~