Q&A

  • 가변 record를 정의할 때...
가변 record를 공부하고 있는데요...
정확히 이해가 되지 않는 부분이 있어서 이렇게 질문을 합니다.
소스는 다음과 같습니다.
--------------------------------------------------------------------
   TServerData = record
      case Integer of
         0: (Msg: array[0..757] of Char);
         1: (data1: Tdata1Info);
         2: (data2: Tdata2Info);
         3: (data3: Tdata3Info);
         4: (data4: Tdata4Info);
         5: (data5: Tdata5Info);
         6: (data6: Tdata6Info);
         7: (data7: Tdata7Info);
         8: (data8: Tdata8Info);
         9: (data9: Tdata9Info);
   end;
--------------------------------------------------------------------
위와 같이 정의를 해 놓았을 경우
case 조건문의 기준은 무엇이 되는 건가요...?
어떤 경우에 Msg라는 변수에 data가 들어가는지요...?
처음 시작을 하는거라 그런지... 전혀 이해가 되지 않습니다...
자세한 설명을 부탁드립니다...

그럼 이만...
2  COMMENTS
  • Profile
    최용일 2003.02.22 03:19
    안녕하세요. 최용일입니다.

    가변레코드에서 case는 분기가 아니라 구별하는데 쓰입니다. (쩝~ 설명이 잘 안되네요...)

    가변레코드는 C의 union처럼 메모리를 공유합니다.

    즉, Data1에 어떤 값을 넣어도 Msg에 그값이 들어갑니다.

    TVarRec = record
        case integer of
            0: (A: LongWord);
            1: (B, C: Word);
    end;

    위와 같은 레코드가 있을때
    A에 $FFFF0000을 입력하면 입력하는 순간
    B는 $0000이 C는 $FFFF 가 들어갑니다.

    --------
    |    A    |
    --------
    | B | C |
    --------
    같은 메모리 값을 A라고 통째로 쓸수도 있고 B와 C로 나누어 쓸 수도 있는거죠..

    때문에 TVarRec의 크기는 모든 필드들을 합친 8바이트가 되는게 아니라 가장 큰 필드의 크기인 4바이트가 되는거죠...

    쩝~ 이해하기 쉽게 설명이 되었나 모르겠네요...

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

  • Profile
    송성환 2003.02.22 03:29
    답변 감사합니다...

    많은 도움이 되었습니다...

    다시 한 번 감사합니다...
    • 이승수
    • 2003.02.22 19:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2003.02.22 19:27
      안녕하세요. 한원희입니다. 아래의 소스를 보니까, 크게 두 가지 방법으로 해결할 수 있겠군요. 먼저...
    • 이지영
    • 2003.02.22 15:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 티모니
      2003.02.22 21:03
      TList를 사용해 보심이 어떨지.. ㅡㅡa
    • 이동현
    • 2003.02.22 05:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강석찬
      2003.02.22 21:32
      델파이 데모안에 비슷한 내용이 있는것 같네요 그걸 한번 참고해 보세요 대략적인 경로는 C:Program File...
    • 정성훈
      2003.02.22 21:30
      고객명이 그룹으로 작성된것같은데 아래 총 5건 부분있죠? Sum 되는거. QRExpr1 이거 사용하신것 같은...
    • 임우식
      2003.02.22 08:33
      filekey는 인덱스가 정의된 상태에서 가능한데요...이것은 로컬테이블의 인덱스에서 가능한 것으로 알고 있...
    • 임성주
    • 2003.02.22 04:40
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김수경
      2003.02.23 03:59
      결론부터 말씀드리면 .... 원하시는 결과를 얻을 수 없답니다. 그 원인은 Field(Attribute)의 의미가 정...
    • 연기훈
      2003.02.24 21:21
      ㅜ.ㅜ MS SQL 엔 DATETIME 형에서 한번에 처리 했는데... 파라독스엔 DATE, TIME이 구분되어있어서....
    • 윤성용
    • 2003.02.22 04:23
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 유경희
    • 2003.02.22 02:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.02.22 03:49
      말씀하시는 그리드가 DB 그리드라고 생각하고 답변드릴께여.. 아래처럼 페이지업다운 메세지를 DBGrid ...
    • 유경희
      2003.02.22 20:43
      넘넘 감사드려염^^ ㅎㅎㅎ 정말 많은 도움 되었습니다~ 감솨~ (--)(__)(--)
    • 델사랑
    • 2003.02.22 02:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2003.02.24 21:28
      DBGRAPH 에서 발생한 에러가 아니라 TQuery에서 발생한 에러인거 같은데요? 그 쿼리의 내용이 아래의 내용...
    • 델사랑
    • 2003.02.22 02:45
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.02.22 03:05
      안녕하세요. 최용일입니다. 어떻게 만드느냐, 어떤 프로토콜을 쓰느냐에 따라서 될수도 있고 안될수도 ...
    • 델사랑
      2003.02.22 03:45
      제가 예전에 간단하게 쪽지만 주고 받을수 있는 메신저를 만들어봤거든요 당연히 서버프로그램이 설치된곳...
    • 최은석
    • 2003.02.22 02:44
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.02.22 03:06
      안녕하세요. 최용일입니다. open말고 opennew로 띄워보세요... ^^ 항상 즐코하세요...
    • 최은석
      2003.02.22 03:20
      답변 감사합니다.. 한데.. 아무런 반응도 없네요... opennew 가 아닌거 같은데여.. 다른방법 없나요?
    • 구창민
      2003.02.22 03:46
      은석님 아래 코드를 사용해보세요.. 새창으로 팍팍팍.. ^^;; 즐건 프로그래밍 하시길~ uses ...
    • 최용일
      2003.02.22 03:37
      안녕하세요. 최용일입니다. 레지스트리 건드려야 할거 같은데 그냥 익스플로러 패스 구해가지고 하시는 ...
    • 최은석
      2003.02.22 03:45
      해결했습니다..
    • 연기훈
      2003.02.22 04:34
      각 칼럼의 width 길이를 조절하세요... 그리에드에서 마우스 우측버튼 클릭하면 칼럼 에디터가 있어여 ...
    • 송성환
    • 2003.02.22 02:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.02.22 03:19
      안녕하세요. 최용일입니다. 가변레코드에서 case는 분기가 아니라 구별하는데 쓰입니다. (쩝~ 설명이 잘...
    • 송성환
      2003.02.22 03:29
      답변 감사합니다... 많은 도움이 되었습니다... 다시 한 번 감사합니다...
    • 이정택
    • 2003.02.22 01:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 연기훈
      2003.02.22 04:43
      select 하실때 주소 select 는 Qry_Code로 하시지 않았는지요..?? 다른 새로운 걸로 검색해야 함니다. ...
    • 최용일
      2003.02.22 03:22
      안녕하세요. 최용일입니다. 윈도우컨트롤들(TWinControl)만 포커스를 가질수 있습니다. 그래픽컨트롤(TG...
    • 김민수
    • 2003.02.22 01:16
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.02.22 03:40
      안녕하세요. 최용일입니다. 델파이의 유닛 맨 끝은 end. 입니다. 맨끝에 "."이 빠졌네요... ^^ 항상 ...
    • 오병준
    • 2003.02.22 00:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.02.22 03:42
      안녕하세요. 최용일입니다. 제 생각에는 TV수신카드에 딸린 프로그램은 영상에 관한 처리를 TV수신카드...
    • 진돌
    • 2003.02.21 23:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.02.22 00:10
      안녕하세요~ 구창민입니다. ShellExecute 의 원형은 아래와 같네여.. HINSTANCE ShellExecute( &...
    • 구창민
      2003.02.22 00:13
      검색은 국력입니다. ^_^; 즐거운 프로그래밍 하시길~~ http://www.delphi.co.kr/zboard/view.php?id=...