Q&A

  • 'stream read error' 에러를 잡지 못하고 있습니다.
PPackedInfoData = ^TPackedInfoData;
    TPackedInfoData = packed record
        pPackedPointer  : Pointer;          //해당패킷 포인터
        Size            : Integer;          //해당패킷 사이즈
        pListData       : Pointer;
        ListDataSize    : Integer;          //리스트 데이타가 있다면 Size > 0 이된다.
    end;




MemStream   := TMemoryStream.Create;



// pUserInfo 에 데이타를 넣는다. //



MemStream.WriteBuffer( pUserInfo^, sizeof(pUserInfo^) );

GetMem( pPackedInfo^.pListData, MemStream.Size);



MemStream.ReadBuffer( pPackedInfo^.pListData^, MemStream.Size );       <--- 이부분에서 에러납니다.

또는

MemStream.ReadBuffer( Pointer(@(pPackedInfo^.pListData))^, MemStream.Size );





무엇이 잘못된거나요? 계속 삽질중입니다. 도와주세요.
2  COMMENTS
  • Profile
    심재용 2005.07.20 19:51
    MemStream.position := 0;  <= 이 문장을 추가해 보세요.

    MemStream.ReadBuffer(...);
  • Profile
    하얀까마귀 2005.07.20 02:12
    안녕하세요 하얀까마귀 입니다.

    포인트 부분을 잘못쓰신것으로 보이네요..

    Pointer형은 4byte 입니다.

    다시말해서

    MemStream.WriteBuffer( pUserInfo^, sizeof(pUserInfo^) );
    여기서 Sizeof에서 반환되는값은
    pPackedPointer 4
    size 4
    plistdata 4
    listdatsize 4 해서 총 16byte 입니다.
    또한 writeBuffer 에서 저장되는값도 실제 데이타가 아닌 현재 데이타의 메모리가 저장됩니다.

    당연히 의미 없겠죠? 해당 데이타를 담고 있는 포인터를 저장하는건 특수한 경우를 제외하고는 의미가 없으니까요..

    따라서 각각 처리해주셔야 합니다.

    저장을 수정하셔야 겠죠?

    그리고 데이타보다 항상 사이즈가 먼저 들어가야 합니다.

    MemStream.WriteBuffer( 패킷사이즈, 4 ); <-- 정수니까
    MemStream.WriteBuffer( 패킷데이타, 크기만큼 ); <-- 크기가 얼마인지는 모르지만.. 아마 위의 값이겠죠?

    list data도 마찬가지....

    가져올때도 마찬가지입니다.

    여기서 사이즈가 0 인경우가 존재할테니까 그럴때는 데이타를 읽으면 안되겠죠?

    그럼.. 즐거운시간 되세요.





    • 임상돈
    • 2005.07.20 01:56
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 심재용
      2005.07.20 19:51
      MemStream.position := 0;  <= 이 문장을 추가해 보세요. MemStream.ReadBuffer(...);
    • 하얀까마귀
      2005.07.20 02:12
      안녕하세요 하얀까마귀 입니다. 포인트 부분을 잘못쓰신것으로 보이네요.. Pointer형은 4byte 입니다...
    • 대박
    • 2005.07.19 22:24
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 서해근
    • 2005.07.19 22:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 권태훈
      2005.07.19 23:10
      챠트의 엑수축의 범위를 지정하면 됩니다.(x에 대한 min,max) 데이타가 많으면 꽤 느립니다. 엑수축 ...
    • 서해근
      2005.07.19 23:38
      정말 감사합니다 부자되세요 ^^
    • 최석종
    • 2005.07.19 04:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 주웰
      2005.07.19 22:10
      질문이 참 난해(!?) 하군요... 레포트를 그런식으로 뽑고 싶으신건지.. 아니면 어플리케이션에서 셀에 입...
    • 이강석
    • 2005.07.19 02:58
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2005.07.22 19:29
      안녕하세요. 타락임다.. MIDAS 에는 서버에서 데이터셋의 일부만 가져오는 기능이 있어요.. 가령 만...
    • 하얀까마귀
      2005.07.19 09:15
      안녕하세요 하얀까마귀 입니다. 아무래도 데이타 건수에 관련된 거라면 두가지 정도 생각이 드네요. ...
    • KKAW
    • 2005.07.19 01:14
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김종화
      2005.07.19 01:44
      MessageDlg('등록되지 않은 회원입니다. 등록하시겠습니까?', mtInformation, [mbYesNoCancel], ...
    • KKAW
      2005.07.20 00:53
      [mbYes, mbNo] 이렇게 하니까 에러 안뜨는 군요... 그런데 Yes를 선택할 경우랑 No를 선택할 경우 ...
    • 김종화
      2005.07.20 01:59
      아래와 같이 하시면 됩니다.. ^^;;     if MessageDlg('등록되지 않은 회원입니...
    • 강철
    • 2005.07.16 23:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 심재용
      2005.07.18 04:51
      파라메터의 종류가 다르기 때문입니다. IEXPLORE.EXE <파일명> 이러한 규칙에 의해 ShellExecu...
    • 유효근
    • 2005.07.16 13:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유효근
      2005.07.16 13:23
      자문자답을 하네요.. ItemIndex 라는게 있군요..
    • 이승근
    • 2005.07.16 12:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 오병주
      2005.07.19 18:16
      안녕하세요... 우선 그래프를 프로그램으로 구현하실려면 일단 TChart의 기본 개념이 필요할 것 같군요....
    • 이병협
    • 2005.07.16 04:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이병협
      2005.07.22 22:36
      <!--CodeS-->, Procedure TfrmAssetGather.udpDBCompact; var   ole:variant;  &...
    • kivalan
    • 2005.07.16 00:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.07.16 01:02
      안녕하세요. 최용일입니다. 날조된 MAC | IP 의 패켓을 보내는 방법이 가능합니다. 받는게 문제지... ...
    • kivalan
      2005.07.16 05:39
      보낸다 해도 받는게 젤 어렵겠네요. 더미허브 안에서 같이 있다면.. 그쪽으로 가는 패킷을 잡아서 통신...
    • 이복만
    • 2005.07.15 05:27
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 황준동
      2005.07.15 22:53
      안녕하세요.. 도움이 되실지 모르겠지만 제가 생각하기에는 호환성을 지원하지 않는다는 에러 메시지...
    • 이복만
      2005.07.18 19:11
      말씀대로 기본적인 설정을 확인하던 중에 다른 부분에서 찾았습니다. ^^; 사소한 부분이었지만 제대로 확...
    • nilriri™
      2005.07.15 07:16
                try      &nb...
    • 이복만
      2005.07.15 21:19
      좋은 의견 감사드립니다. 먼저 저의 환경에 대한 설명이 부족했던것 같습니다. OS : 윈XP DB : Oracle9i...
    • 배정은
    • 2005.07.15 03:49
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 데빠이
      2005.07.15 04:56
      팁/테크란에 보시면 "좋은 나무님"이 올려놓으신 "사용자가 DBGrid의 Column순서,폭을 변경시 그 값을 저장...
    • 배정은
      2005.07.16 21:34
      감사합니다.
    • TeamB
      2005.07.15 04:43
      dpk 는 패키지 파일이라고 하며, 패키지 파일과 함께 배포되지 않을수도 있습니다. 패키지파일을 새로...
    • 데빠이
      2005.07.18 21:17
      우선 답변해주신 분께 감사하구요...^^ 제가 함 해보니까요~ 잘못하고 있는지는 모르겠으나...^^; my.i...
    • TeamB
      2005.07.15 03:56
      MySQL 4.x (혹은 4.1) 이후부터는 Character set 말고 Collation 라는게 추가 되었습니다. 아직 4.x이후...
    • 데빠이
      2005.07.15 04:17
      적어주신 url 은 이미 한번 봤던곳인데 제가 못찾고 지나쳤나보네요... 워낙 죄다 영어라~ 흐흐흐 다시 한...
    • TeamB
      2005.07.15 04:35
      Character set 설정하는것과 동일 합니다. default-collation=euckr_korean_ci 이렇게 my.ini 에 ...
    • 데빠이
      2005.07.15 04:51
    • 유효근
      2005.07.14 23:49
      안녕하세요.. 제가 알기로는 상업적 용도로 쓰면 안되는걸로 알고 있습니다. 고로 기업에서는 별도로...