关于读取固定格式文本文件(数据量大)的问题
现在有一100M数据文件(txt的),里面数据按以下方式排列[header] '数据表头
value,value,... '较多
[header] '数据表头
value,value,...
[header]
value,value,..
请问如何根据己经有数据表头提取到其相应数据?
另外,如何转将用split方法读取出来的value数组(string的)转成double类型的呢?
--------------------编程问答-------------------- 先导入到数据库里,然后在处理比较容易 --------------------编程问答-------------------- 我不想用数据库,有没有其它办法呢 --------------------编程问答-------------------- 正则表达应该可以吧。 --------------------编程问答-------------------- 正则表达式。
--------------------编程问答-------------------- 数据量比较大,用正则表达式可以吗? --------------------编程问答-------------------- 頂 --------------------编程问答-------------------- 盼高手~~ --------------------编程问答-------------------- 不知问题解决没,我来试试看,呵呵
这里要用到正则表达式,你可以看我的Blog,我把匹配模式写下来给你(用C#的):
using (StreamReader sr = new StreamReader(txtOpenFile.Text, Encoding.GetEncoding("gb2312")))
{
while (sr.Peek() >= 0)//文本流检索直到最后
{
string strLine = sr.ReadLine();//逐行读取
if (strLine != "")
{
string strPatternHead = @"\[(?<head>\S*)\]";
Regex regexHead = new Regex(strPatternHead);
if(regexHead.IsMatch(strLine))
{
string strHead = regexHead.Match(strLine).Result(@"${Head}");
//这里你可以引用你得到的表头字符串了...
}
string strSplitValue = @",";
Regex regexValue = new Regex(strSplitValue);
int iValueCount = regexValue.Split(strLine).Length;//被","分割的个数
for(i=0;i < iValueCount; i++)
{
string strValue = regexValue.Split(strLine)[i].ToString();
//在这里取得每一个值,然后处理
}
//以下就不用写了,你应该知道了
--------------------编程问答-------------------- mark
补充:.NET技术 , VB.NET