|
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알고리즘으로 고속으로 바꾸는 방법을 알려주시면
: 되거든요.
:
: 미리 감사드립니다.
:
:
:
:
|