Step3:对存放读取文件内容的string对象,进行数据提取,此处采用IndexOf与Split方法
使用软件环境:VS2010
1、使用Split方法
strTotal为读取文件存放的String对象
splitString为要分析的参数数据,用于对数据对象进行提取
Split()方法对String对象strTotal进行切割
resultLen-1,是因为切割后,会有“1”部分是无用的,因此要减少“1”
dataCount为textbox,用于对切割后的数据进行显示
-----此方法无法同时对多个数据进行分析。若需要对多个数据进行分析时,需要重写多次--------
String^ splitString = "***";
//匹配的字符串splitString,用于在Log信息中索引的数据
array<String^>^ sepMoney = gcnew array<String^>{splitString};
//Split()方法获取所有分割后的数据,保存到数据result中
array<String^>^result = strTotal->Split(sepMoney,StringSplitOptions::None );
//获取数组的长度,数组的长度减1即为分割数据的选项
int resultLen = result->GetLength(0);
//分割数据,会多增加1
dataCount->Text = (resultLen-1).ToString();
2、使用IndexOf方法
totalEquip用于对所有数据的总数进行保存
sepEquip用于对需要分析的数据进行保存到数组中
nCnt为每次从数组中读取的数据进行统计的个数进行保存
itemCount为textbox,用于对总统计结果进行显示
System::Convert::ToString()用于将整数型数据转换为String数据进行显示到textbox中
int totalEquip = 0;
array<String^>^ sepEquip = gcnew array<String^>{"***","&&&"};
for (int count = 0;count < sepEquip->GetLength(0);count++)
{
int nNextIdx = 0, nCnt = 0, nRetIdx = -1;
while ((nRetIdx = strTotal->IndexOf(sepEquip[count], nNextIdx)) != -1)
{
nNextIdx = nRetIdx + 1;
nCnt++;
}
//对每次分析的结果进行求和
totalEquip +=nCnt;
}
itemCount->Text = System::Convert::ToString(totalEquip);