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
[12248] Re:델파이로 개발중 질문이 있습니다.
stonebox [] 2006 읽음    2008-10-22 23:34
저도 회사에서 저 컴포넌트를 쓰게 됐는데요..
저는 체적기하고, 중량을 시리얼 포트로 받아서 처리하는건데..
아래 수식은 선배가 썼던거구요..

  ComPortW.ReadStr(Str, Count);

  m_Value := m_Value + Str;
  // 신호가 여러번 나눠서 들어올 경우가 있음. 이때 마지막 문자가 #$A일 경우 값을 환산하여 처리.
  if Copy(m_Value, length(m_value) , 1) <> #$A then
    exit;

  value := trim(copy(m_value,5,8));

이런식으로 처리하더라구요..
자세히는 모르겠는데.. 앞뒤로 시작/끝 표시값의 특수문자가 들어가게 됩니다.
근데.. 저 str값이 두번에 나눠서 올때가 있어서 if 문에 넣어준거구요..

앞뒤로 아스키 코드값으로 어떤 문자인지 확인해 보시고 그걸 빼거나 해서 처리하시면 될꺼 같네요
-----------------
초보델파이 님이 쓰신 글 :
: RF리더기를 연동하느라 시리얼 포트 컴포넌트를 사용하여 연동 하였습니다.
:
: Cport3.10 컴포넌트 사용했더니 쉽게 되더라구요 카드에 있는 정보가 불러와 지긴하는대
:
: 8901011071051   ?
:
: 이런식으로 나오내요 머 가운대는 대충 가상 민번이구요 양 사이드에 있는
: 특문과 공백 을 없애고 숫자만 값만 받고 싶은대 어떻게 해야 할까요?
:
: procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
: var
:   Str : String;
:   begin
:     ComPort.ReadStr(Str, Count);
:     Memo.Text := Memo.Text + Str;
:   end;
:
: 받는것은 이런식으로 받고 있습니다.
:
: Cport를 통해서요 컴포넌트를 수정해야 할까요?
:
: 고수님들 조언좀 부탁드립니다.

+ -

관련 글 리스트
12247 델파이로 개발중 질문이 있습니다. 초보델파이 1576 2008/10/22
12248     Re:델파이로 개발중 질문이 있습니다. stonebox 2006 2008/10/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.