当我尝试使用insert(int,String)
将字符串插入TListView时,我很困惑。
这是我的代码:
void __fastcall TFrmNewPeta::showDefaultRute()
{
std::string line;
std::ifstream ifs;
wisata.savedefaultT4Awal("DefaultDataAwal");
wisata.savedefaultT4Jarak("DefaultDataJarak");
wisata.savedefaultT4Tujuan("DefaultDataTujuan");
ifs.open("DefaultDataAwal");
try{
if(ifs.is_open())
{
for(int indexfile=0;std::getline(ifs,line);++indexfile)
{
ListItemnew = ListView1->Items->Add();
ListItemnew->Caption = String(IntToStr(indexfile+1));
ListItemnew->SubItems->Insert(indexfile,line.c_str());
//cbxtest->Items->Insert(indexfile,line.c_str()); //successfull
}
}
}__finally{
ifs.close();
}
}
有了这个,编译器说"List Index out of bounds (1)"
我已经多次尝试找到出路,但我得到了同样的结果。
但是这个让我很好奇,因为当我尝试使用ComboBox进行测试时,它的效果很好。
cbxtest->Items->Insert(indexfile,line.c_str());
如果我的代码有问题?
答案 0 :(得分:1)
试试这个
void __fastcall TFrmNewPeta::showDefaultRute()
{
std::string line;
std::ifstream ifs;
wisata.savedefaultT4Awal("DefaultDataAwal");
wisata.savedefaultT4Jarak("DefaultDataJarak");
wisata.savedefaultT4Tujuan("DefaultDataTujuan");
ifs.open("DefaultDataAwal");
try{
if(ifs.is_open())
{
for(int indexfile=0;std::getline(ifs,line);++indexfile)
{
ListItemnew = ListView1->Items->Add();
ListItemnew->Caption = String(IntToStr(indexfile+1));
ListItemnew->SubItems->Add(line.c_str());
//cbxtest->Items->Insert(indexfile,line.c_str()); //successfull
}
}
}__finally{
ifs.close();
}
}
我希望这可以帮助你解决问题