안녕 하세요
수만 라인의 텍스트를 라인 단위로 읽어서 특정 값을 추출 하는 기존 코드가 있습니다.
읽는 속도가 너무 느려, 10.1버전에 추가된 속도가 빠르다는 TBufferedFileStream 함수로 교체 하려고 합니다.
기존 코드는
// 파일 열기
string sTempString;
AnsiString AsReadLine;
ifstream fin;
fin.open(AsOpenFileName.c_str());
while (getline(fin, sTempString)) {
sTempChar = sTempString;
AsReadLine = sTempString.c_str();
AsReadLine =AsReadLine .trim(); //양쪽 공백을 삭제하기 위해 AnsiString 변수 사용
AsStation = AsReadLine.SubString(24, 10);
......
}
형식으로 ifstream로 파일을 열어서 getline(fin, sTempString) 함수로 라인별로 읽어서
특정위치의 글자와 비교를 하고 있습니다.
속도가 너무 느려서, TBufferedFileStream 함수로 교체 하려 하는데, TBufferedFileStream 함수도 라인 단위로 읽을수 있나요?
그리고 AsReadLine = sTempString.c_str(); 이 부분도 형변환을 해서 속도가 느려지는 원인 같은데, string qustndp trim() 이 없어서 AnsiString 으로 형변환 했습니다.
string sTempString 도 특정위치의 글자를 추출할수 있나요?
간단하게라도 설명을 주시면 큰 도움이 될것 같습니다.
감사 합니다.
|