您的位置:首页 > 其它

文件数据分析制作过程【3】

2011-10-09 11:52 489 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: