1

当我尝试使用insert(int,String).

这是我的代码:

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());

如果我的代码有问题?

4

1 回答 1

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();
    }
}

我希望这对您的问题有所帮助

于 2013-10-04T14:03:20.500 回答