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

C++빌더 Q&A
C++Builder Programming Q&A
[61324] Re:Re:Re:Re:감사합니다~(머 대략 해결했습니다~)
궁금이 [] 672 읽음    2010-06-01 11:45
님 말씀대로 특별한 기술이 필요한 부분이 아니라 더더욱 짜증나고 했었는데
for 문 돌리는 부분에서 좀 수정하니 잘 되네요~
답변 감사합니다~~~ (_._)

송신영 님이 쓰신 글 :
: 전체 코드가 어떻게 되어있는지 몰라서 뭐라 단정하여 말씀 드리기가 힘드네요.
: 코드는 정직합니다. 어딘가 문제가 있을 것이니 다시한번 차근차근 찾아보세요.
: 자신이 예상한 것과 어떻게 차차이가 나는지 디버깅 메시지를 뿌려 가면서
: 하나하나 찾으면 문제점을 찾을 수 있을 겁니다.
: 특별한 기술이 필요한것이 아닌것 같으니 디버깅 능력을 좀 키운다는 맘으로
: 다시 한 번 힘 내시길~
:
: 궁금이 님이 쓰신 글 :
: : for (int i = 0; i < AVMtxOutCnt; i++){
: :  if (InCnt[i] == AVMtxInCnt || CurCntScan[i] == CntScan[i])   {      InCnt[i] = 0;      CurCntScan[i] = 0; }
: :     for (int j = InCnt[i]; j < AVMtxInCnt; j++){
: :         if (CheckScanList[i][j] == true) {
: :                          ScanInNo[i]=j+1;
: :                          InCnt[i]++;
: :                             CurCntScan[i]++;
: :               break;
: :             }
: :     }
: : }
: : 처음 했던건 송신영님이 말해주신 것 처럼 위와 같았는데
: : 역시 처음 ScanInNo[0] 값은 하나씩 증가되면서 체크된 곳을 잘 찼는데 ScanInNo[1] ~[15] 까지는 라인에서
: : 처음 체크된 곳 말고는 더이상 찿질 못합니다 ㅜㅜ
: :
: :
: : 송신영 님이 쓰신 글 :
: : : 뭔가 생각을 잘못하신것 같습니다.
: : : 님께서 작성하신 코드로는 아래와같은 위치만 검색됩니다.
: : : (위치가 정확한것은 아니나 한칸씩 밀리며 한줄에 하나만 검색함)
: : :
: : : [v][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
: : : [ ][v][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
: : : [ ][ ][v][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
: : : [ ][ ][ ][v][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
: : : [ ][ ][ ][ ][v][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
: : : [ ][ ][ ][ ][ ][v][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
: : : [ ][ ][ ][ ][ ][ ][v][ ][ ][ ][ ][ ][ ][ ][ ][ ]
: : : [ ][ ][ ][ ][ ][ ][ ][v][ ][ ][ ][ ][ ][ ][ ][ ]
: : :
: : : 8 x 16 구조라면 모든 곳을 검색하기 위해서는 for 문을 중복해서 2개를 사용해야합니다.
: : :
: : : for(){ // Line 반복
: : :      for(){ // 한 라인의 모든 칸 반복.
: : :           // 조건을 줘서 체크된것 확인.
: : :      }
: : : }
: : :
: : :
: : : 궁금이 님이 쓰신 글 :
: : : : CheckScanList[0~7][0~15]  check 박스 수열을 만들어서 체크 박스에 체크는 제대로 됩니다
: : : : scan 버튼을 누르면
: : : : -------------------------------------------------------------------------
: : : : CheckScanList[0] 에 16 개중 체크된  맨처음것의 값 (아무것도 체크 안되있으면 0으로 인식)
: : : : CheckScanList[1] 에 16 개중 체크된  맨처음것의 값
: : : : CheckScanList[2] 에 16 개중 체크된  맨처음것의 값
: : : :                       .
: : : :                       ...
: : : : CheckScanList[6] 에 16 개중 체크된  맨처음것의 값
: : : : CheckScanList[7] 에 16 개중 체크된  맨처음것의 값   이렇게 16개의 값을 구한뒤 전송
: : : : -------------------------------------------------------------------------
: : : :
: : : : CheckScanList[0] 에 16 개중 체크된  그 다음 체크된 값
: : : : CheckScanList[1] 에 16 개중 체크된  그 다음 체크된 값
: : : : CheckScanList[2] 에 16 개중 체크된  그 다음 체크된 값
: : : :                       .
: : : :                       ...
: : : : CheckScanList[6] 에 16 개중 체크된  그 다음 체크된 값
: : : : CheckScanList[7] 에 16 개중 체크된  그 다음 체크된 값   이렇게 16개의 값을 구한뒤 전송
: : : : -------------------------------------------------------------------------
: : : : 16 까지 체크한뒤 다시 처음에 체크된 값 16개를 전송
: : : :
: : : :
: : : :
: : : : void __fastcall TFormMtx::TimerScanTimer(TObject *Sender)
: : : : {
: : : :
: : : : for (int i = 0; i < OutCnt; ++i) {
: : : :      ++CurScanInNo[i];
: : : :      if (CurScanInNo[i] >= InCnt || CurCntScan[i] == CntScan[i])  {CurScanInNo[i] = 0;    CurCntScan[i] = 0;}
: : : :      <--- 카운트가 16보다 커지면 다시 0으로,,  체크된 모든 갯수를 세서 모두 체크했으면 다시 처음으로
: : : :      if (CheckScanList[i][CurScanInNo[i]] == true){ <-- 체크박스 체크되면 값 얻기
: : : :            ScanInNo[i] = CurScanInNo[i]+1;
: : : :            CurCntScan[i]++;
: : : :         }
: : : : }
: : : :
: : : : Send(ScanInNo[0], ScanInNo[1], ScanInNo[2], ScanInNo[3], ScanInNo[4], ScanInNo[5], ScanInNo[6], ScanInNo[7]);   <-- 전송
: : : : }
: : : :
: : : : ScanInNo[0] 의 값은 잘 들어와지는데 그 뒤 ScanInNo[1]~ScanInNo[7] 까지는 값들이 들어왔다 안들어왔다 들쑥 날쑥 하네요,,, ㅜㅜ
: : : :  
: : : : Timer 안에서 for이 잘 안되서 그런건지 해서
: : : : for 문이 아니라 직접 쭉 늘어놓아도 이상하게 그 뒤에 것들은 값을 잘 못찾아요 ㅜㅜ
: : : :
: : : : 질문이 너무 두서없어서 답글이 달릴까 걱정스럽네요,,
: : : : 간단하게 생각했다 아주 하루종일 퇴근도 못하고 미치겠네요
: : : : 도와주세요~

+ -

관련 글 리스트
61303 Timer 로 주어진 시간 간격으로 scan 명령 보내기...소스 좀 봐주세요~ ㅠㅠ 궁금이 785 2010/05/31
61310     Re:Timer 로 주어진 시간 간격으로 scan 명령 보내기...소스 좀 봐주세요~ ㅠㅠ 송신영 740 2010/06/01
61314         Re:Re:Timer 로 주어진 시간 간격으로 scan 명령 보내기...소스 좀 봐주세요~ ㅠㅠ 궁금이 708 2010/06/01
61318             Re:Re:Re:Timer 로 주어진 시간 간격으로 scan 명령 보내기...소스 좀 봐주세요~ ㅠㅠ 송신영 741 2010/06/01
61324                 Re:Re:Re:Re:감사합니다~(머 대략 해결했습니다~) 궁금이 672 2010/06/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.