listview读csv双引号号逗号分隔数据
各位高手好,我在csv文件中的数据如下:
"C43","CAP1","58.039mm","84.582mm","58.039mm","80.772mm","58.039mm","80.772mm","T","360.00","CAP1"
"C41","CAP1","36.195mm","84.582mm","36.195mm","80.772mm","36.195mm","80.772mm","T","360.00","CAP1"
"C40","CAP1","58.039mm","70.358mm","58.039mm","66.548mm","58.039mm","66.548mm","T","360.00","CAP1"
想把它读进listview中,ccrun版主写的程序我稍微做了点修改如下:
TStringList *lst = new TStringList;lst->LoadFromFile("D:\\ccrun\\a.csv");String strLine, str;int n = 0;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(",") - 2); if (str.Length() > 2 && str[str.Length()] == 'm' && str[str.Length() - 1] == 'm') str = str.SubString(1, str.Length() - 2); strLine = strLine.SubString(strLine.Pos(",") + 2, strLine.Length()); if (li->Caption.Length() < 1) { li->Caption = str; n = 0; } else { if (n < 4 || n > 7) li->SubItems->Add(str); } n++; } if (li->Caption.Length() < 1) li->Caption = strLine; else li->SubItems->Add(strLine);}delete lst;
下面简单的字符串操作
AnsiString Str = "\"C43" ;
Str = Str.SubString(2,Str.Length()-1);
ShowMessage(Str); // C43
Str = "CAP1\"" ;
Str = Str.SubString(1,Str.Length()-1);
ShowMessage(Str); //CAP1