Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15596] Re:Re: [자답] 죄송합니다. 실수였습니다.
첫눈 [hadugo] 1741 읽음    2015-11-27 18:31

SetLength(MyRECArray, I);

이 부분을

SetLength(MyRECArray, I + 1);

이렇게 했어야 했는데 엉뚱한 곳에서 해매고 다녔네요.

죄송합니다.


첫눈 님이 쓰신 글 :
: 선언부입니다.
:
: Type
:   TMyREC = Record
:     A : String;
:     B : String;
:     C : String;
:   End;
: 
:   TMyRECArray = Array Of TMyREC;
: 

:
:
: 서버측입니다.
:
: procedure TFormServer.IdTCPServer1Execute(AContext: TIdContext);
: Var
:   MemoryStream : TMemoryStream;
:   MyRECArray: TMyRECArray;
: Begin
:   SetLength(MyRECArray, 3);
: 
:   MyRECArray[0].A := 'A0';
:   MyRECArray[0].B := 'B0';
:   MyRECArray[0].C := 'C0';
: 
:   MyRECArray[1].A := 'A1';
:   MyRECArray[1].B := 'B1';
:   MyRECArray[1].C := 'C1';
: 
:   MyRECArray[2].A := 'A2';
:   MyRECArray[2].B := 'B2';
:   MyRECArray[2].C := 'C2';
: 
: 
:   MemoryStream := TMemoryStream.Create;
:   MemoryStream.Write( MyRECArray[0], SizeOf(MyRECArray[0]) );
:   MemoryStream.Write( MyRECArray[1], SizeOf(MyRECArray[1]) );
:   MemoryStream.Write( MyRECArray[2], SizeOf(MyRECArray[2]) );
: 
:   AContext.Connection.IOHandler.Write(MemoryStream);
:   MemoryStream.Free;
: End;
: 

:
: 다음은 클라이언트측입니다.
:
: VAR
:   MemoryStream : TMemoryStream;
:   MyRECArray : TMyRECArray;
: Begin
:   ....
:   ....
:   ....
:   MemoryStream := TMemoryStream.Create;
:   IdTCPClient.IOHandler.ReadStream(MemoryStream);
: 
:   MemoryStream.Position := 0;
:   I := -1;
:   while MemoryStream.Position < MemoryStream.Size do
:   begin
:     I := I + 1;
:     SetLength(MyRECArray, I);
:     MemoryStream.Read( MyRECArray[I], SizeOf(MyRECArray[I]) );
:   end;
: 
:   MemoryStream.Free;
:   ....
: End;
: 

: 이렇게 하면 MyRECArray가 3개의 배열로 생성되기는 하는데 값이 전부 ''입니다.
:
: 어디를 수정해야 하나요?

+ -

관련 글 리스트
15594 Array Of Record를 TidTCPClient로 전송하려 합니다. 첫눈 1834 2015/11/27
15595     Re:소스 수정했는데 다시 봐주시면 감사하겠습니다. 첫눈 1737 2015/11/27
15596         Re:Re: [자답] 죄송합니다. 실수였습니다. 첫눈 1741 2015/11/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.