把csv文件输入至listview中显示,如何在多列显示??
我用写了一段程序,想把以下数据(protel中得出的元件坐标csv文件)以列的形式显示在listview中,原因就是listview中好设置checkbox,方便选中。但是,程序运行结果是所有的数据都在第一列显示,请高手指点怎么在多列显示(即Designator,Footprint,Mid X...都是在不同的列显示)???第一次发帖,盼望高手指点。
Designator,Footprint,Mid X,Mid Y,Ref X,Ref Y,Pad X,Pad Y,Layer,Rotation,Comment
,,,,,,,,,,
L1,C1005-0402,103.124mm,69.596mm,103.124mm,69.596mm,103.124mm,68.946mm,T,90,Inductor
JP1,HDR1X6,100.584mm,63.246mm,100.584mm,69.596mm,100.584mm,69.596mm,T,270,Header 6
程序如下[code=C/C++][/code]ifstream theCSV;
theCSV.open(sFileName.c_str(),ios::nocreate);
if(theCSV.fail())
{
ShowMessage("打开文件失败");
return;
}
char buff[100];
for(int i=0;i<1000;i++)
{
while(!theCSV.eof())
{
theCSV.getline( buff,100, ',' );
{
ListView1->Items->Insert(i);
ListView1->Items->Item[i]->SubItems->Add(buff);
}
}
}
theCSV.close();
[解决办法]
void __fastcall TForm1::Button1Click(TObject *Sender){ TStringList *lst = new TStringList; lst->LoadFromFile("D:\\ccrun\\a.csv"); String strLine, str; for (int i = 0; i < lst->Count; i++) { strLine = lst->Strings[i]; TListItem *li = ListView1->Items->Add(); while (strLine.Pos(",")) { str = strLine.SubString(1, strLine.Pos(",")); strLine = strLine.SubString(strLine.Pos(",") + 1, strLine.Length()); if (li->Caption.Length() < 1) li->Caption = str; else li->SubItems->Add(str); } if (li->Caption.Length() < 1) li->Caption = strLine; else li->SubItems->Add(strLine); } delete lst;}