Q&A

  • 좀 복잡한 Tlist 이용에 대해서...(초보가)
안녕하세요..제 힘으론 도저히 풀수 없는 문제여서 이렇게 도움을 청합니다..

채팅프로그램을 만들고 있는데, 클라이언트에서 받은 데이타들을 서버에서

저장하는데 Table 대신 TList를 이용하려 합니다..

다음은 채팅방을 만드는 부분입니다..



type

TRoom = Record

Rcode : string[10];

Rid : string[20];

Rgubun : string[2];

Rsubject : string[2];

Rtitle : string[30];

Rnum : string[2];

Ropen : string[1];

Ruser : TList;

end;



type

TRCode = record

date : string[8];

Rcode : string[5];

end;



type

TRUser = record

Ruser : string[20];

end;



이렇게 선언하고, 폼이 create될 때 RoomList := TList.Create; 시켰습니다..

그리고..서버소켓이 클라이언트에서 보낸 데이터를 읽는 부분에서 다음처럼..



procedure TfmChatSvr.ServerClientRead(Sender: TObject;

Socket: TCustomWinSocket);

var

pRoom : ^TRoom;

begin

New(pRoom);

pRoom^.code := TList.Create;

CodeAdd(datetimetostr(now), inttostr(x)); // 이렇게 써도 되나요?

pRoom^.id := data1;

pRoom^.gubun := data2 ;

pRoom^.subject := data3;

pRoom^.title := data4;

pRoom^.num := data5;

pRoom^.open := data6;

pRoom^.user := TList.Create;

RoomList.Add(pRoom);end;

end;



procedure TfmChatSvr.CodeAdd(date : string; Rcode : string);

var

code : TList;

pCode : ^TRCode;

begin

if RoomList.Count = 0 then

x := 1

else

inc(x);



New(pCode);

pCode^.date := date;

pCode^.Rcode := Rcode;

code.Add(pCode);

end;



(data1...data6은 클라이언트에서 받은 메세지를 잘게 쪼겐 것입니다..)



문제는 Rcode(채팅방 코드번호)가 자연증가되데 한계가 있다는 점입니다..

(채팅방은 만든 후에 채팅이 끝나면 삭제되기 때문에 코드증가에 한계가 있어서..)

또 하나는 TList안에 TList 가 들어가 있는데 이걸 어떡해 처리해야 할지...



코드가 너무 엉망이지요..?

TList에 대해선 완전 초짜라서...제 질문에 고수님들의 자세한 답변 기다립니다...(질문이 이해가 되셨는지 잘 모르겠습니다..ㅜㅜ;)



0  COMMENTS