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
    • 공대규
    • 1999.04.23 22:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.23 23:23
      공대규 wrote: > 안녕하십니까요? > > PaintBox에 Image1.canvas를 카피하려 할 때, 에러가 납니다. >...
    • 곽승주
    • 1999.07.06 00:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 그냥
      1999.07.06 02:09
      곽승주 께서 말씀하시기를... > Edit콘트롤에 KeyPress이벤트를 걸러두고 그안에서 엔터키(#13)가 > 눌려...
    • 공대규
    • 1999.04.23 22:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.23 23:23
      공대규 wrote: > 안녕하십니까요? > > PaintBox에 Image1.canvas를 카피하려 할 때, 에러가 납니다. >...
    • 그냥
      1999.07.06 02:03
      답이 아닌거 같긴한데... 제가 아는한 TQuery는 filer를 하지 않아도 Sql문에 그냥 조건절(where)를 사...
    • 이상준
    • 1999.04.23 18:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.04.23 21:07
      이상준 wrote: > 윈도95의 바탕화면에 있는 네트워크 환경처럼 LAN으로 연결된 컴퓨터들의 > 컴퓨터 이름...
    • 고광준
      1999.07.05 23:06
      Unix Server와 PC와 UDP Socket을 써서 통신을 하려고 합니다. 근데 Unix Server에서 Port를 입력할때 hto...
    • 김영대
      1999.07.05 23:50
      고광준 께서 말씀하시기를... > Unix Server와 PC와 UDP Socket을 써서 통신을 하려고 합니다. > 근데 Un...
    • 이민병
    • 1999.04.23 19:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김경수
      1999.04.24 05:06
      안녕하세요 김경수라는 사람입니다. 전 nt용 오라클8하구 델파이4랑 해봤는데 뭐 같은내용이겠지요.. 오...
    • camplus
    • 1999.07.05 22:46
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최석기
    • 1999.07.05 21:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이상준
      1999.04.23 18:51
      윈도95의 바탕화면에 있는 네트워크 환경처럼 LAN으로 연결된 컴퓨터들의 컴퓨터 이름을 읽어오는 방법을 ...
    • 김영대
      1999.04.23 21:07
      이상준 wrote: > 윈도95의 바탕화면에 있는 네트워크 환경처럼 LAN으로 연결된 컴퓨터들의 > 컴퓨터 이름...
    • 임윤경
    • 1999.04.23 00:54
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Jimmy
      1999.07.05 21:11
      안녕하세요... 회계관련 프로그램인데...두 테이블에 '잔액'이라는 필드가 있습니다. 이걸 계산해야 하는...
    • 김영대
      1999.04.23 18:23
      임윤경 wrote: > 제가 김영대씨 홈페이지에서 받은 FTP서버의 파일을 PC로 다운로드하는 소스에 보면, rec...
    • bisbuck
    • 1999.07.05 20:58
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 1999.07.05 20:27
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이현아
      1999.04.23 03:04
      안녕하세요! 저는 이제 막 델파이 공부를 하는 직장인입니다. 다름이 아니구요! Edit박스로 성명...
    • 송기원
      1999.07.06 18:10
      EdbEngineError 의 errors[index].errorcode 또는 errors[index].NativeError를 참조하면 될거 같은데.. ...
    • 김영대
      1999.04.23 18:04
      이현아 wrote: > 안녕하세요! > 저는 이제 막 델파이 공부를 하는 직장인입니다. > 다름이 아니구요! >...
    • 이현아
      1999.04.24 16:43
      김영대 wrote: > 이현아 wrote: > > 안녕하세요! > > 저는 이제 막 델파이 공부를 하는 직장인입니다. ...
    • 강지영
      1999.04.23 00:51
      구창민님의 홈페이지 팁/강좌란에서 읽은 팁입니다. 실행을 하니까 그리드의 타이틀을 클릭하는 대로 쿼리...
    • 신인재
      1999.07.05 21:15
      Parent 프로퍼티를 설정하셔야 합니다. 아래와 같이 MyBtn.Parent := ScrollBox1; 서경철 께서 말씀...
    • 배리스
      1999.04.23 17:51
      안녕하세요. 강지영씨.. 오늘은 날씨가 별로 좋지 않네요. 하지만 이런 날씨가 더 좋은것 같습니다. 왜냐...
    • 김형하
    • 1999.04.22 20:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 레드맨
      1999.07.05 20:00
      델파이를처음 시작하려고 합니다. 뭐부터시작 해야할지? 자세히설명해주세요!!!부탁합니다.....
    • 이정욱
      1999.04.23 07:10
      네.. 저희도 통신 프로그램의 터미널을 만들때 부딪혔던 문제입니다. 프린터같은 경우면 간단하게 LineTo...
    • 배리스
    • 1999.04.23 06:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.23 07:08
      파워러브 델파이 창간호의 일부 입니다~ 1. 현재 라인번호 알아내기 메모에서 현재 Caret이 위치하...
    • 문창완
    • 1999.04.23 05:16
    • 4 COMMENTS
    • /
    • 0 LIKES
    • Endy
      1999.07.05 19:19
      저는 MS-SQL7.0을 사용합니다. Delphi에서 StoreProcedure를 실행하면 BDE Engine Error가 발생 합니다. 물...
    • 이정욱
      1999.04.23 07:03
      참.. 혹시 검색엔진이 야후같은것을 말씀하신것이라면 기본개념은 이렇습니다. 별것 아니죠. 데이타 베...
    • 조복기
      1999.07.05 19:54
      Endy 께서 말씀하시기를... > 저는 MS-SQL7.0을 사용합니다. Delphi에서 StoreProcedure를 실행하면 BDE E...
    • 이정욱
      1999.04.23 07:01
      그냥 참고만 하세요~ http://www.nobreak.com 에 가시면 CrazySearch라는것이 있습니다. 그것의 소스를 ...