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
[26363] Re:TStrings의 Text에서 반환되는 \r\n중에서 \r을 빠르게 제가하는 방법에 대한 문의
김태선 [] 975 읽음    2003-07-18 12:40
TStrings에 담기 전에 \r\n을 제거하면 안될까요?
제 경험상 파일로 읽어서 제거하면 50만 라인이라고 해도 불과 몇초안에 제거될 것으로
생각됩니다. 물론 읽을때 블럭단위로 읽어야 겠지요.
읽으면서 제거하는 것은 사실 시간이 걸리지 않죠.
시간은 파일을 읽는데 소요되는 시간 뿐이죠.

TStrings에 담긴 후에 제거할려면 시간이 조금 걸리겠죠.
TStrings의 내부 문자열은 .c_str()로 c 스타일로 받을 수 있는데
일반적으로 조작하면 안되는 것으로 되어 있습니다.
그러나 TStrings에서 어떻게 처리하는지 알고리즘을 알면,
조작가능한데 이 경우 역시 50만 라인이라고 해도 불과 몇초안일 것으로 생각됩니다.
한 2초 안쪽도 가능하겠죠. (그런데 내부구조는 저도 안뜯어봐서 모르겠습니다 --;)


시간이 없어서 실제 시험을 못하고 아이디어만 올립니다...
그럼.


개발자 님이 쓰신 글 :
: 안녕하세요.
:
: 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을 빠르게 제가하는 방법에 대한 문의 김태선 975 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.