|
물론 문제가 있습니다.
벡터에 객체 포인터를 삽입하신 경우라면 개체 복사가 일어나지 않습니다. 포인터 복제만 이루어지죠.
즉, page->Clear(); 시점에서 push_back 한 page는 내용을 잃게 되었을겁니다.
아무래도 코딩하시는걸 보니, vector와 TStringList 를 함께 쓰실 문제가 아닐것 같은데...
굳이 사용하시겠다면, 다음처럼 해 보시죠. 메모리 해제는 별도로 해 주셔야 될겁니다.
직접 돌려보지 않고, 올려주신 코드를 조금 수정한거라 제대로 도는진 모르겠습니다.
vector<TStringList *> strLists;
TStringList *data = new TStringList();
data->LoadFromFile("TEST.txt");
int cnt = data->Count;
TStringList *page = new TStringList();
for (int i = 0; i<cnt; i++) {
page->Add(data->Strings[i]);
if(data->Strings[i].Pos("endpage")) {
strLists.push_back(page);
page = new TStringList();
}
}
Memo1->Lines->Add(strLists.size());
for(int i = 0; i < strLists.size(); i++)
{
Memo1->Lines->Add(strLists[i]->GetText());
}
|