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
[26362] Re:TStrings의 Text에서 반환되는 \r\n중에서 \r을 빠르게 제가하는 방법에 대한 문의
김상구.패패루 [peperu] 841 읽음    2003-07-18 12:32
원래 TStrings에서 Text는 호출될 때 마다 각 라인에 대한 조립이 이루어집니다.
그런식의 호출은 1시간이 넘게 걸려도 이상할게 없죠.

TStrings로 직접 처리하시려면 Line별로 접근해서 직접 "\n"을 붙이는 방법을 쓰세요.
해 보진 않았지만 다음과 같이 처리하시면 될겁니다.


void __fastcall MakeText(TStrings *Source, String &Target)
{
  Target = "";  // 초기화
  int nCount = Source->Count;
  String sLine;
  for (int ii = 0; ii < nCount; ii++)
  {
    sLine = Source->Strings[ii] + "\n";
    Target += sLine;
    // 이 두 라인 어설프게 합치지 마세요. 속도가 어마어마하게 느려질 수 있습니다.
  }
}
개발자 님이 쓰신 글 :
: 안녕하세요.
:
: TStrings안에 구분자로 \r\n을 사용하는데 \r때문에 제 프로그램에 문제가
: 생기고 있습니다.
: TRichEdit에서
: Edit1->Lines->operator[]()함수를 사용하면 \r을 제거할수 있으나
: 제가 쓰는 Line이 50만 line정도 되다 보니 1시간 이상이 걸리더군요.
: 그래서 Edit1->Text에서 직접 \r을 제거 하도록 했는데
: 1만 라인에서 약 7초가 소요되어서 문제가 심각하거든요.
: 혹시 아시면 분 있으면 알려주시기 바랍니다.
:
: 쉽게 말하면 Return키 취급방식을 PC에서 Unix알고리즘으로 고속으로 바꾸는 방법을 알려주시면
: 되거든요.
:
: 미리 감사드립니다.
:
:
:
:

+ -

관련 글 리스트
26359 TStrings의 Text에서 반환되는 \r\n중에서 \r을 빠르게 제가하는 방법에 대한 문의 개발자 799 2003/07/18
26363     Re:TStrings의 Text에서 반환되는 \r\n중에서 \r을 빠르게 제가하는 방법에 대한 문의 김태선 976 2003/07/18
32854         Re:Re:TStrings의 Text에서 반환되는 \r\n중에서 \r을 빠르게 제가하는 방법에 대한 문의 김태선 898 2003/07/18
32853         Re:Re:TStrings의 Text에서 반환되는 \r\n중에서 \r을 빠르게 제가하는 방법에 대한 문의 김상구.패패루 885 2003/07/18
26362     Re:TStrings의 Text에서 반환되는 \r\n중에서 \r을 빠르게 제가하는 방법에 대한 문의 김상구.패패루 841 2003/07/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.