|
AnsiString의 Delete에 제약이 있나요?
괭장히 큰 Text Data를 해석하기 위해서 TStringList 100개 정도에 나누어 저장한 후에 TStringList에 저장된 값을 500자씩 나누어 읽고 AnsiString 저장후 해석하다가 300자보다 작으면 추가로 읽으면서 전체를 해석합니다.
그런데 strData.Delete(1, 4); 이 코드에서 에러가 나는 데 디버거로 보니 Delete하기 전 AnsiString에 저장된 값은 이상이 없었는 데 왜 에러가 발생하는 지 모르겠습니다.
Project raised exception class ERangeError with message ''. 이 메시지가 뜨는 데 OK버튼을 선택하면
아래 함수로 들어갑니다.
char& __fastcall operator [](const int idx)
{
ThrowIfOutOfRange(idx); // Should Range-checking be optional to avoid overhead ?? <==여기 idx값은 5
Unique(); // Ensure we're not ref-counted
return Data[idx-1];
}
무엇이 문제인지 아시는 분 있으신가요?
|