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
[66344] Re:Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요..
김태우 [hananet0282] 1504 읽음    2012-02-21 10:03
답변 감사합니다..
하지만.. 지금 님같은 경우는 숫자로만 하셨지만...
제가 읽어 들일 파일들은 문자도 있고 숫자도 있고 빈칸도 있는 경우 입니다..
마찬가지로..말씀해주신결로 적용을 해보았으나..
마찬가지로 시간이 오래 걸리네요..30초 이상으로요..ㅜㅜ




이길남.HoPe 님이 쓰신 글 :
: 제가 아래와 같이 테스트 해봤습니다.
: 참조 하세요.
:
: Row, Col 수량을 4000씩 잡았습니다.
: 하기와 같이 하면 약 6~7초 정도 걸렸습니다.
:
:     int row = StringGrid1->RowCount - 1;
:     int col = StringGrid1->ColCount - 1;
: 
:     unsigned long tt = GetTickCount();
: 
:     for(int j = 1; j < row + 1; j++)    StringGrid1->Rows[j]->BeginUpdate();
:     for(int i = 1; i < col + 1; i++)    StringGrid1->Cols[i]->BeginUpdate();
: 
:     for(int j = 1; j < row + 1; j++)
:     {
:         for(int i = 1; i < col + 1; i++)
:         {
:             StringGrid1->Cells[i][j] = IntToStr(i);
:         }
:     }
:     for(int j = 1; j < row + 1; j++)    StringGrid1->Rows[j]->EndUpdate();
:     for(int i = 1; i < col + 1; i++)    StringGrid1->Cols[i]->EndUpdate();
: 
:     Caption = GetTickCount() - tt;
: 

:
: 하기와 같이 하면 약17초 정도 걸리거더군요.
:
:     int row = StringGrid1->RowCount - 1;
:     int col = StringGrid1->ColCount - 1;
: 
:     unsigned long tt = GetTickCount();
: 
:     for(int j = 1; j < row + 1; j++)
:     {
:         for(int i = 1; i < col + 1; i++)
:         {
:             StringGrid1->Cells[i][j] = IntToStr(i);
:         }
:     }
: 
:     Caption = GetTickCount() - tt;
: 

:
: 이것도 느리면 타이머를 사용해서 조금씩 변경하는 방법이 있습니다.
:
: void __fastcall TForm1::Timer1Timer(TObject *Sender)
: {
: /*
:     외부에서 FRowIndex를 0으로 하면 다시 갱신하는 구조입니다. ^^;;
:     전체를 다 갱신하면 FRowIndex가 RowCount보다 많기 때문에 갱신작업을 하지 않을껍니다.
: */
:     if(FRowIndex > StringGrid1->RowCount)
:     {
:         Caption = "갱신 완료!";
:         return;
:     }
: 
:     for(int c = 0; c < StringGrid1->ColCount; c++)
:     {
:         StringGrid1->Cells[c][FRowIndex] = IntToStr(c);
:     }
: 
:     Caption = "갱신 중!";
:     FRowIndex++;
: }
: //---------------------------------------------------------------------------
: 

:
: Ps. 답변이 되실련지 모르겠네요.
:
: 김태우 님이 쓰신 글 :
: : for(int j = 1; j < row+1; j++)
: :         {
: :            
: :             for(int i = 1; i < col+1; i++)
: :             {
: :
: :                 StringGrid1->Cells[i][j] = XLSheet.OlePropertyGet("Cells", j , i).OlePropertyGet("Value");
: :                 StringGrid1->Cells[0][j] = IntToStr(j);
: :                 StringGrid1->Cells[i][0] = IntToStr(i);
: :             }
: :         }
: :
: : StringGrid1->Rows[0]->BeginUpdate();
: : 이렇게 밖에 사용을 못하나요??
: :
: : 그러면 이렇게 엑셀에서 읽어온값을 그리드에 넣어줄때..
: : 어떻게 사용해야되는건지...
: : 초보입니다.. 부탁드리겠습니다.
: : 검색을 해봐도.. 제가 적용하면 마찬가지로 프로그램이 용량이큰엑셀은 30초 정도는 멈춰 있네요..

+ -

관련 글 리스트
66341 StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 김태우 2075 2012/02/21
66348     Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 델파이수행중 1788 2012/02/21
66346     Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 박우성 1711 2012/02/21
66343     Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 이길남.HoPe 1435 2012/02/21
66344         Re:Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 김태우 1504 2012/02/21
66349             Re:Re:Re: 님~ 테스트에 사용한 엑셀파일 올려보세여 인디 1389 2012/02/21
66347             Re:Re:Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 장성호 2656 2012/02/21
66353                 Re:Re:Re:Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 김태우 1631 2012/02/21
66358                     Re:Re:Re:Re:Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 장성호 1420 2012/02/21
66361                         Re:Re:Re:Re:Re:Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 김태우 1557 2012/02/21
66345             Re:Re:Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 이길남.HoPe 1291 2012/02/21
66362                 Re:Re:Re:Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 김태우 1250 2012/02/21
66363                     Re:Re:Re:Re:Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 이길남.HoPe 1385 2012/02/22
66369                         Re:Re:Re:Re:Re:Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 김태우 1200 2012/02/23
66372                             Re: 님~ 아직 파일 안올렸네여~ 인디 1218 2012/02/23
66378                                 Re:Re: 님~ 아직 파일 안올렸네여~ 김태우 1231 2012/02/23
66375                                 Re:Re: 님~ 아직 파일 안올렸네여~ 이길남.HoPe 1227 2012/02/23
66382                                     Re:Re:Re: 님~ 아직 파일 안올렸네여~ 김태우 1299 2012/02/23
66388                                         Re:Re:Re:Re: 님~ 아직 파일 안올렸네여~ 이길남.HoPe 1276 2012/02/24
66407                                             Re:Re:Re:Re:Re: 님~ 아직 파일 안올렸네여~ 김태우 1255 2012/02/25
66370                             Re:Re:Re:Re:Re:Re:Re:StringGrid 에서 BeginUpdate 를 사용어떻게 하나요.. 이길남.HoPe 1836 2012/02/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.