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
[8053] count() 함수를 어디다 어떻게 사용하셨어요?(내용무)
이방형 [] 1238 읽음    2001-06-08 14:22
고영문 님이 쓰신 글 :
: 고영문 님이 쓰신 글 :
: : 홍성진 님이 쓰신 글 :
: : : 고영문 님이 쓰신 글 :
: : : :
: : : :     if( wctime <= 10)
: : : :     {
: : : :       Chart1->Series[0]-> AddXY(wctime,y[1],"",clYellow);
: : : :       Chart1->Series[1]-> AddXY(wctime,y[0],"",clBlue);
: : : :     }
: : : :     else
: : : :     {
: : : :       tmpX1 = Chart1->Series[0]->XValues->Value[(int)wctime] - Chart1->Series[0]->XValues->Value[(int)wctime-1];
: : : :       tmpX2 = Chart1->Series[1]->XValues->Value[(int)wctime] - Chart1->Series[1]->XValues->Value[(int)wctime-1];
: : : :
: : : :       Chart1->Series[0]->Delete(0);
: : : :       Chart1->Series[1]->Delete(0);
: : : :       Chart1->Series[0]->AddXY(wctime+tmpX1, y[1], "", clYellow);  // Chart1->Series[0]->XValues->Last()
: : : :       Chart1->Series[1]->AddXY(wctime+tmpX2, y[0], "", clBlue);  // Chart1->Series[0]->XValues->Last()
: : : :     }
: : : :
: : : : 위의 코드는 제가 실험에 사용하고 있는 for문 안에서 실행되고 있고 여기에서 에러가 나타납니다. 그래프
: : : :
: : : : 는 잘그려지구요.,wctime = 샘플링하고 있는 현재 시간입니다. 물론 double형이구요.
: : : :
: : : : 그런데 어느 정도 시간이 되면 아래와 같은 error가 뜹니다. 도통 무슨 말인지 어디가 잘못되었는지 이해
: : : :
: : : : 가 가질 않는군요. 여기 Q&A에 TList error에 대해 있어서 봤지만 무슨 말인지 이해가 안갑니다. 어케 해결
: : : :
: : : : 을 해야 하는지 ...큰일임돠..급한데..고수님덜의 현명한 방법을 배우고자 합니다.
: : : :
: : : : "Project FineProjcet.exe raised exception class TListError with message'List index out of bounds(521)'
: : : :
: : : : 521은 시간( 배열일 수 도있구요..)입니다. 이 값은 300에서 발생할 수도 있고 왔다갔다 합니다.
: : :
: : : 안녕하세요..홍성진 입니다.
: : :
: : : 님께서 말씀하신 에러는 허용되지 않은 범위를 접근해서 그런겁니다.
: : : 예를들면, TList의 count가 10개일때, List1->Items[10]; 이런식으로 접근하면
: : : 위와같은 에러가 나겠지요...TList는 0부터 시작하니까요.
: : :
: : : 만약에 님께서, TList 아이템에 대해 추가, 삭제가 빈번이 일어난다면, 동기화를
: : : 잘 맞춰주셔야 할겁니다.
: : :
: : : 그런오류를 없애는 쉬운 방법은 항상 값을 액세스 하기전에 사용하려는 인덱스가
: : : TList의 count범위안에 드는지 먼저 확인하고 접근하세요...
: : :
: : : 다른 방법으로 예외처리도 있구요..
: : :
: : : 좋은결과 있으시길 바랍니다..
: : : 그럼...
: : :
: : //////////////////////////////////
: : ㅠ.ㅠ 무슨 말인지는 대충 이해는 하겠는데 해결방법은 어케 해야되는지....제가 내공이 약해서리...오늘 까지 해결해야 되는데 큰일입니다.
: : 위의 코드는 10초 이후부터 그래프가 좌측으로 밀리면서 항상 10초정도의 데이터를 그래프로 그리고 있읍니다. 예외처리는 어케해야 되는지...가능하다면 코드로 표현해주셨으면 고맙구요...
:
: ///////////////////////////////////
: 여러분들의 성의있는 답변으로 큰 도움을 받았습니다. 결국 count()라는 함수로 배열의 수를 확인했구요.
: 아래 코드가 해결한 코드입니다.
:
:     if( wctime <= 10)
:     {
:       Chart1->Series[0]-> AddXY(wctime,aivolt,"",clYellow);
:       Chart1->Series[1]-> AddXY(wctime, u ,"",clRed);
:       Chart1->Series[2]-> AddXY(wctime,y[0],"",clGreen);
:     }
:     else
:     {
:       Chart1->Series[0]->Delete(0);
:       Chart1->Series[1]->Delete(0);
:       Chart1->Series[2]->Delete(0);
:
:       Chart1->Series[0]->AddXY(wctime, aivolt, "", clYellow);   // Potentiometer output line
:       Chart1->Series[1]->AddXY(wctime, u, "", clRed);         // Controller output line
:       Chart1->Series[2]->AddXY(wctime, y[0], "", clGreen);     // Sag line
:     }

+ -

관련 글 리스트
8000 TList error에 대해서 질문임돠... 고영문 1240 2001/06/06
8001     Re:TList error에 대해서 질문임돠... 홍성진 1380 2001/06/06
8002         Re:Re:ㅠ.ㅠ 무슨말인지 이해를...?? 고영문 1340 2001/06/07
8032             Re:Re:Re:해결했습니다..감사 고영문 1271 2001/06/07
8053                 count() 함수를 어디다 어떻게 사용하셨어요?(내용무) 이방형 1238 2001/06/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.